http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56961
Bug #: 56961 Summary: cycle between do_spec_1() / process_brace_body() / handle_braces() Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: dim...@gmail.com $ cat x.cpp struct foo { }; typedef struct { volatile foo fields; } CSPHandleState; CSPHandleState a; void fn1 () { CSPHandleState b; b.fields = foo(); } $ g++ -O0 -c x.cpp x.cpp: In function 'void fn1()': x.cpp:12:16: error: passing 'volatile foo' as 'this' argument of 'foo& foo::operator=(const foo&)' discards qualifiers [-fpermissive] b.fields = foo(); ^ g++: internal compiler error: Segmentation fault (program cc1plus) 0x40950c execute /home/dimhen/src/gcc-current/gcc/gcc.c:2822 0x409769 do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:4614 0x40c4d9 process_brace_body /home/dimhen/src/gcc-current/gcc/gcc.c:5871 0x40c4d9 handle_braces /home/dimhen/src/gcc-current/gcc/gcc.c:5785 0x40a1fa do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:5268 0x40c4d9 process_brace_body /home/dimhen/src/gcc-current/gcc/gcc.c:5871 0x40c4d9 handle_braces /home/dimhen/src/gcc-current/gcc/gcc.c:5785 0x40a1fa do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:5268 0x40a5eb do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:5373 0x40c4d9 process_brace_body /home/dimhen/src/gcc-current/gcc/gcc.c:5871 0x40c4d9 handle_braces /home/dimhen/src/gcc-current/gcc/gcc.c:5785 0x40a1fa do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:5268 0x40c4d9 process_brace_body /home/dimhen/src/gcc-current/gcc/gcc.c:5871 0x40c4d9 handle_braces /home/dimhen/src/gcc-current/gcc/gcc.c:5785 0x40a1fa do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:5268 0x40c4d9 process_brace_body /home/dimhen/src/gcc-current/gcc/gcc.c:5871 0x40c4d9 handle_braces /home/dimhen/src/gcc-current/gcc/gcc.c:5785 0x40a1fa do_spec_1 /home/dimhen/src/gcc-current/gcc/gcc.c:5268 0x40c4d9 process_brace_body /home/dimhen/src/gcc-current/gcc/gcc.c:5871 0x40c4d9 handle_braces /home/dimhen/src/gcc-current/gcc/gcc.c:5785 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. Thanks to David Blaikie for reduced testcase (http://lists.cs.uiuc.edu/pipermail/cfe-users/2013-April/000085.html)