-----------------------------------------------------------------------------------------
/* { dg-options "-O1 -funswitch-loops" } */

extern int bar (void);

void foo (int c, int b)
{
 retry:
  switch (c)
    {
    case 1: return;
    case 2:
      if (b)
        c = bar ();
      if (c != 3)
        goto retry;
      break;
    }
}
-----------------------------------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault.
tree_verify_flow_info () at ../../gcc/gcc/tree-cfg.c:3727
3727                    gcc_assert (!label_bb->aux || label_bb->aux == (void 
*)1);
(gdb) where
#0  tree_verify_flow_info () at ../../gcc/gcc/tree-cfg.c:3727
#1  0x083c0793 in verify_flow_info () at ../../gcc/gcc/cfghooks.c:212
#2  0x080b8dba in cleanup_tree_cfg () at ../../gcc/gcc/tree-cfg.c:890
#3  0x080cbe52 in execute_pass_list (pass=0x853bd00) at
../../gcc/gcc/tree-optimize.c:508
#4  0x080cbe65 in execute_pass_list (pass=0x853bf80) at
../../gcc/gcc/tree-optimize.c:546
#5  0x080cbe65 in execute_pass_list (pass=0x853b6c0) at
../../gcc/gcc/tree-optimize.c:546
#6  0x080cc0a9 in tree_rest_of_compilation (fndecl=0xb7b279f8) at
../../gcc/gcc/tree-optimize.c:640
#7  0x08061d23 in c_expand_body (fndecl=0xb7b279f8) at 
../../gcc/gcc/c-decl.c:6379
#8  0x083f0a5d in cgraph_expand_function (node=0xb7b27e0c) at
../../gcc/gcc/cgraphunit.c:822
#9  0x083f0bf8 in cgraph_assemble_pending_functions () at
../../gcc/gcc/cgraphunit.c:305
#10 0x083f126d in cgraph_finalize_function (decl=0xb7b279f8, nested=0 '\0') at
../../gcc/gcc/cgraphunit.c:388
#11 0x0806229c in finish_function () at ../../gcc/gcc/c-decl.c:6351
#12 0x0804b774 in yyparse () at c-parse.y:401
#13 0x0804fdfb in c_parse_file () at c-parse.y:2908
#14 0x08096cd6 in c_common_parse_file (set_yydebug=0) at 
../../gcc/gcc/c-opts.c:1095
#15 0x0839cdbd in toplev_main (argc=0, argv=0x85e1451) at 
../../gcc/gcc/toplev.c:985
#16 0xb7ed8ad8 in __libc_start_main (main=0x80a98d0 <main>, argc=5,
ubp_av=0xbffff594, init=0x8491fe0 <__libc_csu_init>, fini=0xb8000ca0
<_rtld_local_ro>, rtld_fini=0, stack_end=0xbffff58c) at
../sysdeps/generic/libc-start.c:209
#17 0x08049a91 in _start () at ../sysdeps/i386/elf/start.S:119
-----------------------------------------------------------------------------------------

-- 
           Summary: [4.0 Regression] ICE Segmentation fault in
                    tree_verify_flow_info with -funswitch-loops
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: belyshev at lubercy dot com
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18475

Reply via email to