[Bug c++/56961] New: cycle between do_spec_1() / process_brace_body() / handle_braces()

dimhen at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Apr 15 07:39:00 GMT 2013


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: unassigned@gcc.gnu.org
        ReportedBy: dimhen@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)



More information about the Gcc-bugs mailing list