Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Справочник MQL5 доступен на 8 языках. Изучай MQL5 на удобном тебе языке!
hrenfx
3678
hrenfx 2015.07.15 19:13 

См. комментарии в коде. Ошибки компиляции и сам краш воспроизводятся на Win XP SP3 x86, Win7 SP1 x64, metaeditor build 1150-1163 (другие не пробовал).

Код, конечно, странноватый, но сделан специально для демонстрации сразу двух ошибок компиляции и краш, в качестве бонуса.

Если не воспроизводится, дайте знать - буду искать затык у себя.

// Короткий код (скрипт), вызывающий ошибки компилятора "code generation error" и "tree optimization error".
// А также падение метаэдитора (build 1150-1163).

struct STRUCT1
{
  int a;

  STRUCT1( void )
  {
  }
};

struct STRUCT2
{
  STRUCT1 b;
};

class CLASS
{
public:
  STRUCT2 Tmp[];

  void Method( CLASS* Class )
  {
    int a = Class[0].b.a;

    return;
  }

  STRUCT2 operator []( int i )
  {
    return(Tmp[i]);

    STRUCT2 Res;

    return(Res);
  }
};

int Func1( bool Flag )
{
  int a = 0; // Закомментировав эти две строчки одновременно
  if (TRUE); // будет краш метаэдитора (build 1150-1163) при компиляции

  return(0);
}

void Func2( CLASS* &Class)
{
  Func1(TRUE);

  return;
}

void OnStart( void )
{
  CLASS* Class;

  Func2(Class); // Если одновременно закомментировать эти
  Func1(TRUE);  // две строчки, компилятор выдаст "tree optimization error"

  Class.Method(Class);

  return;
}
MetaQuotes
Админ
24393
Renat Fatkhullin 2015.07.15 20:40  
Спасибо, проверим и исправим.
MetaQuotes
Админ
24393
Renat Fatkhullin 2015.07.16 14:34  

Спасибо, исправили ошибку.

Будет доступно в следующей бата-версии на MetaQuotes-Demo.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий