[Bug tree-optimization/60891] New: [4.9/4.10 Regression] ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_order_compute_fn with -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts

zsojka at seznam dot cz gcc-bugzilla@gcc.gnu.org
Fri Apr 18 19:01:00 GMT 2014


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

            Bug ID: 60891
           Summary: [4.9/4.10 Regression] ICE: SIGSEGV (Invalid
                    write/read) in pre_and_rev_post_order_compute_fn with
                    -O -fno-tree-ch -fno-tree-cselim
                    -fno-tree-dominator-opts
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz

Created attachment 32633
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32633&action=edit
reduced testcase

Compiler output (under valgrind):
$ gcc -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts testcase.c
==2497== Invalid write of size 4
==2497==    at 0x7464DF: pre_and_rev_post_order_compute_fn(function*, int*,
int*, bool) (cfganal.c:981)
==2497==    by 0x7465F7: pre_and_rev_post_order_compute(int*, int*, bool)
(cfganal.c:1014)
==2497==    by 0xC9FBE7: (anonymous namespace)::pass_reassoc::execute()
(tree-ssa-reassoc.c:4632)
==2497==    by 0xA49D49: execute_one_pass(opt_pass*) (passes.c:2229)
==2497==    by 0xA49FE5: execute_pass_list(opt_pass*) (passes.c:2282)
==2497==    by 0xA49FF7: execute_pass_list(opt_pass*) (passes.c:2283)
==2497==    by 0x786448: expand_function(cgraph_node*) (cgraphunit.c:1774)
==2497==    by 0x78842B: compile() (cgraphunit.c:1908)
==2497==    by 0x788B94: finalize_compilation_unit() (cgraphunit.c:2329)
==2497==    by 0x63C8B3: c_write_global_declarations() (c-decl.c:10401)
==2497==    by 0xB3E69C: compile_file() (toplev.c:562)
==2497==    by 0xB4066F: toplev_main(int, char**) (toplev.c:1914)
==2497==    by 0x5A46BF4: (below main) (in /lib64/libc-2.17.so)
==2497==  Address 0x610ecb8 is 0 bytes after a block of size 40 alloc'd
==2497==    at 0x4C2C820: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==2497==    by 0x143DA37: xmalloc (xmalloc.c:147)
==2497==    by 0xC9FB88: (anonymous namespace)::pass_reassoc::execute()
(tree-ssa-reassoc.c:4618)
==2497==    by 0xA49D49: execute_one_pass(opt_pass*) (passes.c:2229)
==2497==    by 0xA49FE5: execute_pass_list(opt_pass*) (passes.c:2282)
==2497==    by 0xA49FF7: execute_pass_list(opt_pass*) (passes.c:2283)
==2497==    by 0x786448: expand_function(cgraph_node*) (cgraphunit.c:1774)
==2497==    by 0x78842B: compile() (cgraphunit.c:1908)
==2497==    by 0x788B94: finalize_compilation_unit() (cgraphunit.c:2329)
==2497==    by 0x63C8B3: c_write_global_declarations() (c-decl.c:10401)
==2497==    by 0xB3E69C: compile_file() (toplev.c:562)
==2497==    by 0xB4066F: toplev_main(int, char**) (toplev.c:1914)
==2497==    by 0x5A46BF4: (below main) (in /lib64/libc-2.17.so)
==2497== 
==2497== Invalid read of size 4
==2497==    at 0xC9FCE6: (anonymous namespace)::pass_reassoc::execute()
(tree-ssa-reassoc.c:4648)
==2497==    by 0xA49D49: execute_one_pass(opt_pass*) (passes.c:2229)
==2497==    by 0xA49FE5: execute_pass_list(opt_pass*) (passes.c:2282)
==2497==    by 0xA49FF7: execute_pass_list(opt_pass*) (passes.c:2283)
==2497==    by 0x786448: expand_function(cgraph_node*) (cgraphunit.c:1774)
==2497==    by 0x78842B: compile() (cgraphunit.c:1908)
==2497==    by 0x788B94: finalize_compilation_unit() (cgraphunit.c:2329)
==2497==    by 0x63C8B3: c_write_global_declarations() (c-decl.c:10401)
==2497==    by 0xB3E69C: compile_file() (toplev.c:562)
==2497==    by 0xB4066F: toplev_main(int, char**) (toplev.c:1914)
==2497==    by 0x5A46BF4: (below main) (in /lib64/libc-2.17.so)
==2497==  Address 0x610ecb8 is 0 bytes after a block of size 40 alloc'd
==2497==    at 0x4C2C820: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==2497==    by 0x143DA37: xmalloc (xmalloc.c:147)
==2497==    by 0xC9FB88: (anonymous namespace)::pass_reassoc::execute()
(tree-ssa-reassoc.c:4618)
==2497==    by 0xA49D49: execute_one_pass(opt_pass*) (passes.c:2229)
==2497==    by 0xA49FE5: execute_pass_list(opt_pass*) (passes.c:2282)
==2497==    by 0xA49FF7: execute_pass_list(opt_pass*) (passes.c:2283)
==2497==    by 0x786448: expand_function(cgraph_node*) (cgraphunit.c:1774)
==2497==    by 0x78842B: compile() (cgraphunit.c:1908)
==2497==    by 0x788B94: finalize_compilation_unit() (cgraphunit.c:2329)
==2497==    by 0x63C8B3: c_write_global_declarations() (c-decl.c:10401)
==2497==    by 0xB3E69C: compile_file() (toplev.c:562)
==2497==    by 0xB4066F: toplev_main(int, char**) (toplev.c:1914)
==2497==    by 0x5A46BF4: (below main) (in /lib64/libc-2.17.so)
==2497==



More information about the Gcc-bugs mailing list