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

C++

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

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

05.01.2016, 16:47. Просмотров 569. Ответов 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
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2016, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Код, который ломает MSVC компилятор (просто делюсь) (C++):

Компилятор ругается на код - C++ Builder
TabbedForm-&gt;Button4-&gt;StyleLookup=donetoolbutton; ругается на =donetoolbutton; и TabbedForm-&gt;Button4-&gt;Align= Right; ругается на =...

Почему в MSVC++ 2008 компилируется, а в MSVC++ 2010 вылезает много ошибок? - C++
Кстати, перед запуском в 2010 предлагает конвертировать код. Ну а чем эти две студии отличаются, что вызывает большое количество ошибок?

Можно ли просто установить yaml в компилятор MinGW? - C++
Хочу поэкспериментировать с yaml. Что сделано 1. Смотрел - вроде бы в самом MinGW нет родной библиотеки для поддержки yaml, хотя может...

Код не работает в VC++ 6.0 но работает в MSVC++ 2010 - C++
Что делать как перевести, ведь как мне кажеться должно быть подобно. Проблемма например в заполнении структуры void...

Перевести код в компилятор - C++
Нужно перевести код в компилятор, и если можно отправьте его в комментах в архиве, сейчас нет доступа к компу, а нужно срочно сдать завтра,...

Код из Memo1 - в компилятор - C++
Здравствуйте вот я написал программу и хочу чтоб при нажатии на кнопку он из Memo1 перетаскивал код в компилятор (У меня есть компилятор...

5
Croessmah
Эксперт CЭксперт С++
13409 / 7559 / 853
Регистрация: 27.09.2012
Сообщений: 18,602
Записей в блоге: 3
Завершенные тесты: 1
05.01.2016, 20:25 #2
А здесь cl нормально кушает: http://rextester.com/DZHOI31246

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

cl-ке смутили разум
0
Убежденный
Системный программист
Эксперт С++
15618 / 7127 / 1128
Регистрация: 02.05.2013
Сообщений: 11,567
Записей в блоге: 1
Завершенные тесты: 1
05.01.2016, 22:58 #4
Kastaneda, версия компилятора какая?
У меня VS2008 и VS2010 (оба с SP1) скушали и не подавились.
1
hoggy
6636 / 2821 / 484
Регистрация: 15.11.2014
Сообщений: 6,240
Завершенные тесты: 1
06.01.2016, 04:44 #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
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,273
Записей в блоге: 2
Завершенные тесты: 1
06.01.2016, 04:55  [ТС] #6
Цитата Сообщение от Убежденный Посмотреть сообщение
Kastaneda, версия компилятора какая?
Да, я что-то как нуб об ошибке сообщил "оно не работает"
У меня MSVC 13, а вот версию самого компилятора не могу посмотреть, пока под Linux'ом сижу. Но в ответе выше уже написали, что она из лога понятна.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2016, 04:55
Привет! Вот еще темы с ответами:

просьба просто скомпилить и запустить код - C++
просьба просто скомпилить и запустить код (в любой IDE) т.к. товарисч говорит, что в той же IDE что и у меня он этого сделать не может... ...

Компилятор запускает предыдущий код - C++
Допустим у меня есть какой то код, скомпилировал его, потом написал другой код, сохранил все, запускаю, а компилятор запускает предыдущий...

поправьте код компилятор выдает ошибки - C++
#include &lt;iostream&gt; using namespace std; bool Hit(float x, float y, float r) { ...

Соптимизирует ли (любой) компилятор такой код? - C++
Вопрос знатокам: нужно ли выносить за цикл создание переменной, или любой компилятор сделает оптимизацию и переменная не будет...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
06.01.2016, 04:55
Ответ Создать тему
Опции темы

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