[Bug bootstrap/63280] New: Double free in GCC compiled with LTO and -O3.

d.g.gorbachev at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Sep 16 16:25:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63280

            Bug ID: 63280
           Summary: Double free in GCC compiled with LTO and -O3.
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: d.g.gorbachev at gmail dot com
              Host: i686-pc-linux-gnu
            Target: i686-pc-linux-gnu
             Build: i686-pc-linux-gnu

GCC 5.0.0 20140914 (experimental) /r215254/. Crash at bootstrap.

0x8a6117d crash_signal
        ../../gcc-5/gcc/toplev.c:340
0x8642460 free_register_move_costs
        ../../gcc-5/gcc/ira.c:1694
0x8642460 target_ira_int::~target_ira_int()
        ../../gcc-5/gcc/ira.c:1708
0x8642460 __base_dtor
        ../../gcc-5/gcc/target-globals.c:124

Backtraces:

#0  0xb7e2a060 in free () from /usr/lib/libc.so.6
#1  0x08415067 in free_register_move_costs (
    this=0x9259640 <default_target_ira_int>) at ../../gcc-5/gcc/ira.c:1694
#2  target_ira_int::~target_ira_int (this=0x9259640 <default_target_ira_int>)
    at ../../gcc-5/gcc/ira.c:1708
#3  0xb7de3073 in __run_exit_handlers () from /usr/lib/libc.so.6
#4  0xb7de30d1 in exit () from /usr/lib/libc.so.6

,

#0  0xb7e2a060 in free () from /usr/lib/libc.so.6
#1  0x08642461 in free_register_move_costs (
    this=0x9259640 <default_target_ira_int>) at ../../gcc-5/gcc/ira.c:1694
#2  __base_dtor (this=0x9259640 <default_target_ira_int>)
    at ../../gcc-5/gcc/ira.c:1708
#3  target_globals::__base_dtor (this=0x91e7480 <default_target_globals>)
    at ../../gcc-5/gcc/target-globals.c:124
#4  0xb7de3073 in __run_exit_handlers () from /usr/lib/libc.so.6
#5  0xb7de30d1 in exit () from /usr/lib/libc.so.6

In gcc/ira.c, calls to memset are optimized out:

1699      memset (x_ira_register_move_cost, 0, sizeof
x_ira_register_move_cost);
1700      memset (x_ira_may_move_in_cost, 0, sizeof x_ira_may_move_in_cost);
1701      memset (x_ira_may_move_out_cost, 0, sizeof x_ira_may_move_out_cost);



More information about the Gcc-bugs mailing list