Бага в MSVC 9.0
От: nen777w  
Дата: 30.12.11 11:58
Оценка: 72 (3) :)
Компиляция кода приводит к internal compiler error

struct S {
    const char arr[120];
};

S s = { (const unsigned char*)"aaa" };

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}



c:\app_tmp\compiler_crash\compiler_crash\compiler_crash.cpp(10) : fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'msc1.cpp', line 1411)



30.12.11 22:24: Перенесено модератором из 'C/C++. Прикладные вопросы'. Всё, что касается специфики компиляторов — это общие вопросы. — Кодт
Re[8]: Бага в MSVC 9.0
От: Сыроежка  
Дата: 04.01.12 20:19
Оценка: :)
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Сыроежка, Вы писали:


O>>>VS2010 на этом коде тоже падает (VS2010 + SP1).

С>>Я думаю, вы что-то путаете. Никакой фатальной ошибки VC++ 2010 не генерирует.

К>Может быть, ice зависит от каких-то внешних факторов? 32/64, английская/русская студия, английская/русская винда, юзер/админ, ещё что-то.

К>Всё-таки это неопределённое поведение компилятора, на то оно и неопределённое, чтобы при случае оказаться гейзенбагом.
К>(Хотя чаще всего это шрёдинбаг).

К>А что пишет студия конкретно у тебя?


Забавно, сейчас после Нового года снова запустил пример, и компилятор вывалился. А до этого просто писал, что-то вроде неверного преобразование из одного типа в другой. Более того я даже делал замену приведение типов в стиле С на приведение типов в стиле С++, и компилятор ни разу не вываливался!
А сегодня своершенно другое поведение компилятора.
Меня можно встретить на www.cpp.forum24.ru
Re: Бага в MSVC 9.0
От: Сыроежка  
Дата: 30.12.11 12:28
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Компиляция кода приводит к internal compiler error


N>
N>struct S {
N>    const char arr[120];
N>};

N>S s = { (const unsigned char*)"aaa" };

N>int _tmain(int argc, _TCHAR* argv[])
N>{
N>    return 0;
N>}
N>



N>

N>c:\app_tmp\compiler_crash\compiler_crash\compiler_crash.cpp(10) : fatal error C1001: An internal error has occurred in the compiler.
1>>(compiler file 'msc1.cpp', line 1411)


Я не знаю, почему именно компилятор выдал фатальную ошибку, но, вообще-то, ваш код не корректный, так как вы пытаетесь инициализировать символьный массив значением константного указателя.
Меня можно встретить на www.cpp.forum24.ru
Re[2]: Бага в MSVC 9.0
От: nen777w  
Дата: 30.12.11 12:41
Оценка:
С>Я не знаю, почему именно компилятор выдал фатальную ошибку, но, вообще-то, ваш код не корректный, так как вы пытаетесь инициализировать символьный массив значением константного указателя.

Я не утверждал обратного. Это упрошенный вариант того что получилось в результате раскрытия макросов (точнее не корректного их применения).
А то что компилятор при этом падает это bad.
Re[3]: Бага в MSVC 9.0
От: Сыроежка  
Дата: 30.12.11 12:48
Оценка:
Здравствуйте, nen777w, Вы писали:

С>>Я не знаю, почему именно компилятор выдал фатальную ошибку, но, вообще-то, ваш код не корректный, так как вы пытаетесь инициализировать символьный массив значением константного указателя.


N>Я не утверждал обратного. Это упрошенный вариант того что получилось в результате раскрытия макросов (точнее не корректного их применения).

N>А то что компилятор при этом падает это bad.

Дело в том, что он мог фатально упасть не из-за этого кода, а, напимер, из-за препроцессора. То есть хотелось бы знать, если вы вводите именно свой упрощеннный пример код, компилятор падает с фатальной ошибкой? Я не могу этого проверить, так как у меня VC++ 2010, и компилятор на вашем примере не генерирует фатальную ошибку.
Меня можно встретить на www.cpp.forum24.ru
Re[4]: Бага в MSVC 9.0
От: nen777w  
Дата: 30.12.11 12:51
Оценка:
С>Дело в том, что он мог фатально упасть не из-за этого кода, а, напимер, из-за препроцессора. То есть хотелось бы знать, если вы вводите именно свой С>упрощеннный пример код, компилятор падает с фатальной ошибкой?
Ну да

С>Я не могу этого проверить, так как у меня VC++ 2010, и компилятор на вашем примере не генерирует фатальную ошибку.

Ok. Давно пора переходить на 2010.
Re[5]: Бага в MSVC 9.0
От: okman Беларусь https://searchinform.ru/
Дата: 30.12.11 14:12
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Ok. Давно пора переходить на 2010.


Не поможет.
VS2010 на этом коде тоже падает (VS2010 + SP1).
Re[6]: Бага в MSVC 9.0
От: Сыроежка  
Дата: 30.12.11 14:17
Оценка:
Здравствуйте, okman, Вы писали:

O>Здравствуйте, nen777w, Вы писали:


N>>Ok. Давно пора переходить на 2010.


O>Не поможет.

O>VS2010 на этом коде тоже падает (VS2010 + SP1).

Я думаю, вы что-то путаете. Никакой фатальной ошибки VC++ 2010 не генерирует.
Меня можно встретить на www.cpp.forum24.ru
Re[7]: Бага в MSVC 9.0
От: okman Беларусь https://searchinform.ru/
Дата: 30.12.11 14:35
Оценка:
Здравствуйте, Сыроежка, Вы писали:

С>Я думаю, вы что-то путаете. Никакой фатальной ошибки VC++ 2010 не генерирует.


То есть, я лгун, а вот это — результат Фотошопа ?





Visual Studio 2010 Ultimate, Английская + Service Pack 1.
Версия файла cl.exe — 16.0.30319.1.
Re: Бага в MSVC 9.0
От: NiJazz Австралия  
Дата: 30.12.11 14:45
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Компиляция кода приводит к internal compiler error


N>
N>struct S {
N>    const char arr[120];
N>};

N>S s = { (const unsigned char*)"aaa" };

N>int _tmain(int argc, _TCHAR* argv[])
N>{
N>    return 0;
N>}
N>



N>

N>c:\app_tmp\compiler_crash\compiler_crash\compiler_crash.cpp(10) : fatal error C1001: An internal error has occurred in the compiler.
1>>(compiler file 'msc1.cpp', line 1411)



struct S
{
    const char arr[120];

};

S s = {'a', 'a', 'a'};


Остальные 117 элементов будут нулями и будет полноценная C-строка.
Re[7]: Бага в MSVC 9.0
От: okman Беларусь https://searchinform.ru/
Дата: 30.12.11 14:53
Оценка:
Здравствуйте, Сыроежка.

Проверил на другой машине, версии файла cl.exe — 16.0.40219.1.
Результат такой же.
Re[7]: Бага в MSVC 9.0
От: Кодт Россия  
Дата: 30.12.11 18:19
Оценка:
Здравствуйте, Сыроежка, Вы писали:

O>>VS2010 на этом коде тоже падает (VS2010 + SP1).

С>Я думаю, вы что-то путаете. Никакой фатальной ошибки VC++ 2010 не генерирует.

Может быть, ice зависит от каких-то внешних факторов? 32/64, английская/русская студия, английская/русская винда, юзер/админ, ещё что-то.
Всё-таки это неопределённое поведение компилятора, на то оно и неопределённое, чтобы при случае оказаться гейзенбагом.
(Хотя чаще всего это шрёдинбаг).

А что пишет студия конкретно у тебя?
Перекуём баги на фичи!
Re[2]: Бага в MSVC 9.0
От: Кодт Россия  
Дата: 30.12.11 18:23
Оценка:
Здравствуйте, NiJazz, Вы писали:

NJ>struct S
NJ>{
NJ>    const char arr[120];
NJ>};

NJ>S s = {'a', 'a', 'a'};


NJ>Остальные 117 элементов будут нулями и будет полноценная C-строка.


Да проще даже (с тем же результатом):
S s = { "aaa" };

Тут речь не о том, как писать правильно, а о наличии ошибки в компиляторе. Он не должен падать на ill-formed (и на well-formed тоже) программах, а писать варнинги и ерроры.

Кстати, okman или nen777w, вы в MS багрепорт послали?
Перекуём баги на фичи!
Re[3]: Бага в MSVC 9.0
От: nen777w  
Дата: 30.12.11 21:38
Оценка:
К>Кстати, okman или nen777w, вы в MS багрепорт послали?

Не, я не знаю как. Может подскажете на будущее?
Re[8]: Бага в MSVC 9.0
От: dudkin  
Дата: 30.12.11 22:09
Оценка:
Здравствуйте, okman, Вы писали:

O>Версия файла cl.exe — 16.0.30319.1.[/b]


бугога у меня тож падает
Re: Бага в MSVC 9.0
От: ononim  
Дата: 30.12.11 22:32
Оценка:
VS6, VS2005 — "error C2552: 's' : non-aggregates cannot be initialized with initializer list"
регрессия однако
Как много веселых ребят, и все делают велосипед...
Re: Бага в MSVC 9.0
От: Hydrophobia  
Дата: 31.12.11 04:42
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Компиляция кода приводит к internal compiler error



да у них и автокомплишн не в порядке. в студенческие годы находил следующее:

http://www.rsdn.ru/forum/tools/2190874.flat.aspx
Автор:
Дата: 31.10.06
Re[4]: Бага в MSVC 9.0
От: _NN_  
Дата: 03.01.12 12:56
Оценка:
Здравствуйте, nen777w, Вы писали:

К>>Кстати, okman или nen777w, вы в MS багрепорт послали?


N>Не, я не знаю как. Может подскажете на будущее?


Тут репортить: https://connect.microsoft.com/

Зарепортил баг.
Ждем ответа.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[8]: Бага в MSVC 9.0
От: Сыроежка  
Дата: 04.01.12 20:09
Оценка:
Здравствуйте, okman, Вы писали:

O>Здравствуйте, Сыроежка, Вы писали:


С>>Я думаю, вы что-то путаете. Никакой фатальной ошибки VC++ 2010 не генерирует.


O>То есть, я лгун, а вот это — результат Фотошопа ?



O>



O>Visual Studio 2010 Ultimate, Английская + Service Pack 1.

O>Версия файла cl.exe — 16.0.30319.1.


У меня компилятор не генерирует фатальную ошибку, коогда я запускаю код из IDE.
Меня можно встретить на www.cpp.forum24.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.