Bug 6259

Summary: Compilation breaks with internal compiler error
Product: Sisyphus Reporter: partizan <partizan>
Component: i386-mingw32msvc-gccAssignee: Sir Raorn <raorn>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: lav, sin
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Preprocessed file none

Description partizan 2005-03-13 09:57:09 MSK
src/common/datetime.cpp: In function `wxString CallStrftime(const wxChar*, const
tm*)':
src/common/datetime.cpp:356: internal compiler error: in
dwarf2out_frame_debug_expr, at dwarf2out.c:1602
Comment 1 partizan 2005-03-13 09:58:26 MSK
Created attachment 769 [details]
Preprocessed file
Comment 2 Sir Raorn 2005-05-15 14:52:55 MSD
$ bzcat Download/ccT97In8.out.bz2 > datetime.cpp
$ i386-mingw32msvc-g++ -c -o datetime.o datetime.cpp
$ _

Huh?
Comment 3 Sir Raorn 2005-05-15 14:55:15 MSD
Также работает с -g.  С -ggdb3 выдаёт:

/home/raorn/tmp/ccxxfXpH.s: Assembler messages:
/home/raorn/tmp/ccxxfXpH.s:21643: Error: unknown pseudo-op: `.secrel32'
/home/raorn/tmp/ccxxfXpH.s:21665: Error: unknown pseudo-op: `.secrel32'
... мнооого, мнооого таких ошибок ...
/home/raorn/tmp/ccxxfXpH.s:61710: Error: unknown pseudo-op: `.secrel32'
/home/raorn/tmp/ccxxfXpH.s:62316: Error: unknown pseudo-op: `.secrel32'
zsh: 12581 exit 1     i386-mingw32msvc-g++ -c -ggdb3 -o datetime.o datetime.cpp
Comment 4 partizan 2005-05-16 08:30:36 MSD
(In reply to comment #3)
Это preprocessed file, поэтому надо его собирать с помощью
/usr/libexec/gcc/i386-mingw32msvc/3.4.3/cc1plus

При сборке с флагом -O2, -O1 или -O выдаётся показанная выше ошибка, при сборке
с -Os, -O3 или без флагов ошибки нет.
Comment 5 Sir Raorn 2005-05-24 12:01:52 MSD
Загадочно это всё...  Обновил gcc до 3.4.3-alt6, на тестовом файле всё ещё
падает...  i386-mingw32msvc-wxWidgets-2.5.4-alt1 пересобрался.  Смотрим флаги:

$ for fl in -fno-defer-pop -fno-merge-constants -fno-thread-jumps
-fno-loop-optimize -fno-crossjumping -fno-if-conversion -fno-if-conversion2
-fno-delayed-branch -fno-guess-branch-probability -fno-cprop-registers; do
/usr/libexec/gcc/i386-mingw32msvc/3.4.3/cc1plus -o datetime.o -O1 $fl
datetime.cpp >/dev/null 2>&1 && echo "OK $fl" || echo "Not OK $fl"; done
Not OK -fno-defer-pop
Not OK -fno-merge-constants
Not OK -fno-thread-jumps
Not OK -fno-loop-optimize
Not OK -fno-crossjumping
Not OK -fno-if-conversion
Not OK -fno-if-conversion2
Not OK -fno-delayed-branch
OK -fno-guess-branch-probability
Not OK -fno-cprop-registers

-fno-guess-branch-probability должен помочь.  (с -O2 та же самая картина)

Смотрим что делает -O3:

$ for fl in -finline-functions -frename-registers; do
/usr/libexec/gcc/i386-mingw32msvc/3.4.3/cc1plus -o datetime.o -O2 $fl
datetime.cpp >/dev/null 2>&1 && echo "OK $fl" || echo "Not OK $fl"; done       
                                                                            OK
-finline-functions                                                             
                 Not OK -frename-registers

Собсно вот.  Будем искать...
Comment 6 Sir Raorn 2005-05-24 12:11:32 MSD
Кстати:

http://sourceforge.net/mailarchive/forum.php?thread_id=6461999&forum_id=5121

P.S. И где же патчи?
Comment 7 Sir Raorn 2005-05-24 13:39:50 MSD
Нашёл.  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17406

В Сизиф ушёл -alt3.  Не ICE'ится.