Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
#1

Код, который ломает MSVC компилятор (просто делюсь) - C++

05.01.2016, 16:47. Просмотров 445. Ответов 5
Метки нет (Все метки)

Привет!

Иногда приходится кое-что делать под виндой и сегодня случайно наткнулся на такой креш
C++
1
2
3
4
5
6
7
8
9
void f(const std::string &s)
{
 
}
 
int main()
{
    f({}); // <-- вот оно
}
Выхлоп компилятора
1>...: fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 227)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
1>...: fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 227)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
1>
1>LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
1>
1> Version 12.00.21005.1
1>
1> ExceptionCode = C0000005
1> ExceptionFlags = 00000000
1> ExceptionAddress = 584B640A (58240000) "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c2.dll"
1> NumberParameters = 00000002
1> ExceptionInformation[ 0] = 00000000
1> ExceptionInformation[ 1] = 00000038
1>
1> CONTEXT:
1> Eax = 00000000 Esp = 00D8E318
1> Ebx = 0100A184 Ebp = 00D8E368
1> Ecx = 00000002 Esi = 00F00A90
1> Edx = 01003D44 Edi = 00000000
1> Eip = 584B640A EFlags = 00010202
1> SegCs = 00000023 SegDs = 0000002B
1> SegSs = 0000002B SegEs = 0000002B
1> SegFs = 00000053 SegGs = 0000002B
1> Dr0 = 00000000 Dr3 = 00000000
1> Dr1 = 00000000 Dr6 = 00000000
1> Dr2 = 00000000 Dr7 = 00000000
Интересно что ему так мозги сломало

Добавлено через 6 минут
g++ нормально съедает https://ideone.com/ewbaff
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2016, 16:47     Код, который ломает MSVC компилятор (просто делюсь)
Посмотрите здесь:

Подскажите компилятор С++, для ассемблерных вставок на х64 код C++
C++ Код из Memo1 - в компилятор
C++ Код не работает в VC++ 6.0 но работает в MSVC++ 2010
Соптимизирует ли (любой) компилятор такой код? C++
Дан код, надо чтобы выводил не просто число, а по модулю C++
C++ поправьте код компилятор выдает ошибки
просьба просто скомпилить и запустить код C++
Почему в MSVC++ 2008 компилируется, а в MSVC++ 2010 вылезает много ошибок? C++
Компилятор запускает предыдущий код C++
Можно ли просто установить yaml в компилятор MinGW? C++
Какой есть лёгкий компилятор С++, который сразу отмечает ошибки ?
Компилятор ругается на код C++ Builder

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
05.01.2016, 20:25     Код, который ломает MSVC компилятор (просто делюсь) #2
А здесь cl нормально кушает: http://rextester.com/DZHOI31246

Цитата Сообщение от Kastaneda Посмотреть сообщение
Интересно что ему так мозги сломало
Microsoft?
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
05.01.2016, 22:36     Код, который ломает MSVC компилятор (просто делюсь) #3
g++ 4.8.4 и clang 3.4 нормально схомячили код

cl-ке смутили разум
Убежденный
Системный программист
Эксперт С++
15173 / 6805 / 1073
Регистрация: 02.05.2013
Сообщений: 11,118
Завершенные тесты: 1
05.01.2016, 22:58     Код, который ломает MSVC компилятор (просто делюсь) #4
Kastaneda, версия компилятора какая?
У меня VS2008 и VS2010 (оба с SP1) скушали и не подавились.
hoggy
6168 / 2534 / 444
Регистрация: 15.11.2014
Сообщений: 5,610
Завершенные тесты: 1
06.01.2016, 04:44     Код, который ломает MSVC компилятор (просто делюсь) #5
Цитата Сообщение от Убежденный Посмотреть сообщение
версия компилятора какая?
очевидно жеж:
Цитата Сообщение от Kastaneda Посмотреть сообщение
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c2.dll"
Цитата Сообщение от Kastaneda Посмотреть сообщение
Version 12.00.21005.1

ради любопытства собрался на своих линейках:

-- The CXX compiler identification is MSVC 19.0.23506.0
-- Check for working CXX compiler using: Visual Studio 14 2015 -- works

main.cpp(4): warning C4100: 's': unreferenced formal parameter
-- The CXX compiler identification is MSVC 18.0.31101.0
-- Check for working CXX compiler using: Visual Studio 12 2013 -- works

main.cpp(4): warning C4100: s: неиспользованный формальный параметр
-- The CXX compiler identification is MSVC 17.0.50727.1
-- Check for working CXX compiler using: Visual Studio 11 2012 -- works

main.cpp(4): warning C4100: s: неиспользованный формальный параметр
main.cpp(11): error C2143: синтаксическая ошибка: отсутствие ")" перед "{"
main.cpp(11): error C2660: f: функция не принимает 0 аргументов
main.cpp(11): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
main.cpp(11): error C2059: синтаксическая ошибка: )
-- The CXX compiler identification is MSVC 17.0.51025.0
-- Check for working CXX compiler using: Visual Studio 11 2012 -- works

CTP_Warning:
'Microsoft Visual C++ Compiler Nov 2012 CTP' is for testing purposes only.

main.cpp(4): warning C4100: 's' : unreferenced formal parameter

(using v120_CTP_Nov2012)
-- The CXX compiler identification is GNU 4.8.1
-- Check for working CXX compiler: mingw64/bin/g++.exe -- works
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
06.01.2016, 04:55  [ТС]     Код, который ломает MSVC компилятор (просто делюсь) #6
Цитата Сообщение от Убежденный Посмотреть сообщение
Kastaneda, версия компилятора какая?
Да, я что-то как нуб об ошибке сообщил "оно не работает"
У меня MSVC 13, а вот версию самого компилятора не могу посмотреть, пока под Linux'ом сижу. Но в ответе выше уже написали, что она из лога понятна.
Yandex
Объявления
06.01.2016, 04:55     Код, который ломает MSVC компилятор (просто делюсь)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru