------- Comment #4 from pinskia at gcc dot gnu dot org 2007-02-22 19:04 ------- Reduced testcase: struct QString { ~QString(); }; template <class T> struct QValueListNode { QValueListNode<T>* next; T data; }; template <class T> struct QValueListPrivate { ~QValueListPrivate() { QValueListNode<T>* p = node->next; while( p != node ) { QValueListNode<T>* x = p->next; delete p; p = x; } } QValueListNode<T>* node; }; struct Option { QString sarg; }; struct Options { QString helptext; QValueListPrivate <QString> filelist; QValueListPrivate <Option> optlist; }; Options options;
-------------------------------- Backtrace: #0 fancy_abort (file=0xda8f04 "../../gcc/cfg.c", line=665, function=0xda92c0 "alloc_aux_for_block") at ../../gcc/diagnostic.c:642 #1 0x00797674 in alloc_aux_for_block (bb=0xf6fbe0, size=24) at ../../gcc/cfg.c:665 #2 0x007979d8 in alloc_aux_for_blocks (size=24) at ../../gcc/cfg.c:693 #3 0x00989adc in estimate_bb_frequencies () at ../../gcc/predict.c:1712 #4 0x004b7594 in execute_function_todo (data=0x463d) at ../../gcc/passes.c:899 #5 0x004b6e70 in do_per_function (callback=0x4b71d4 <execute_function_todo>, data=0x463d) at ../../gcc/passes.c:754 #6 0x004b76d8 in execute_todo (flags=17981) at ../../gcc/passes.c:932 #7 0x004b7e0c in execute_one_pass (pass=0xe9956c) at ../../gcc/passes.c:1077 (gdb) p *pass $2 = { name = 0xd82eb0 "apply_inline", Note I reduced this to be able to reproduce with just -O2. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Last reconfirmed|0000-00-00 00:00:00 |2007-02-22 19:04:49 date| | Summary|[4.3 Regression] ice for |[4.3 Regression] ice for |legal code with -O3 |legal code with -O2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30864