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

            Bug ID: 60024
           Summary: global-buffer-overflow in init_regs_for_mode
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com

When GCC is bootstrapped with --with-build-config=bootstrap-asan
r207375 gave

spawn -ignore SIGHUP
/export/build/gnu/gcc-asan/build-x86_64-linux/gcc/testsuite/gfortran3/../../gfortran
-B/export/build/gnu/gcc-asan/build-x86_64-linux/gcc/testsuite/gfortran3/../../
-B/export/build/gnu/gcc-asan/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libgfortran/
/export/gnu/import/git/sources/gcc/gcc/testsuite/gfortran.dg/pr42294.f
-fno-diagnostics-show-caret -fdiagnostics-color=never -O -O2
-fselective-scheduling2 -fsel-sched-pipelining -funroll-all-loops -S -m32 -o
pr42294.s^M
=================================================================^M
^[[1m^[[31m==9831==ERROR: AddressSanitizer: global-buffer-overflow on address
0x000003deb6cd at pc 0x12f89cf bp 0x7ffffba71eb0 sp 0x7ffffba71ea8^M
^[[1m^[[0m^[[1m^[[34mREAD of size 1 at 0x000003deb6cd thread T0^[[1m^[[0m^M
    #0 0x12f89ce in init_regs_for_mode
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:1124^M
    #1 0x12f89ce in mark_unavailable_hard_regs
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:1292^M
    #2 0x12f89ce in find_used_regs
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:3336^M
    #3 0x12f89ce in collect_unavailable_regs_from_bnds
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:1630^M
    #4 0x12f89ce in find_best_reg_for_expr
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:1693^M
    #5 0x12f89ce in fill_vec_av_set
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:3853^M
    #6 0x12ff673 in fill_ready_list
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:4083^M
    #7 0x12ff673 in find_best_expr
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:4446^M
    #8 0x12ff673 in fill_insns
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:5613^M
    #9 0x12ff673 in schedule_on_fences
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:7434^M
    #10 0x12ff673 in sel_sched_region_2
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:7568^M
    #11 0x130bb8e in sel_sched_region_1
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:7607^M
    #12 0x130bb8e in sel_sched_region(int)
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:7708^M
    #13 0x130f731 in run_selective_scheduling()
/export/gnu/import/git/sources/gcc/gcc/sel-sched.c:7784^M
    #14 0x12a5cb1 in rest_of_handle_sched2
/export/gnu/import/git/sources/gcc/gcc/sched-rgn.c:3650^M
    #15 0x12a5cb1 in execute
/export/gnu/import/git/sources/gcc/gcc/sched-rgn.c:3769^M
    #16 0x11768e4 in execute_one_pass(opt_pass*)
/export/gnu/import/git/sources/gcc/gcc/passes.c:2229^M
    #17 0x11772c8 in execute_pass_list(opt_pass*)
/export/gnu/import/git/sources/gcc/gcc/passes.c:2282^M
    #18 0x11772ee in execute_pass_list(opt_pass*)
/export/gnu/import/git/sources/gcc/gcc/passes.c:2283^M
    #19 0x11772ee in execute_pass_list(opt_pass*)
/export/gnu/import/git/sources/gcc/gcc/passes.c:2283^M
    #20 0xa71cfa in expand_function
/export/gnu/import/git/sources/gcc/gcc/cgraphunit.c:1774^M
    #21 0xa770da in expand_all_functions
/export/gnu/import/git/sources/gcc/gcc/cgraphunit.c:1908^M
    #22 0xa770da in compile()
/export/gnu/import/git/sources/gcc/gcc/cgraphunit.c:2252^M
    #23 0xa7898a in finalize_compilation_unit()
/export/gnu/import/git/sources/gcc/gcc/cgraphunit.c:2329^M
    #24 0xffd1e0 in write_global_declarations()
/export/gnu/import/git/sources/gcc/gcc/langhooks.c:323^M
    #25 0x1367834 in compile_file
/export/gnu/import/git/sources/gcc/gcc/toplev.c:562^M
    #26 0x136c7a3 in do_compile
/export/gnu/import/git/sources/gcc/gcc/toplev.c:1914^M
    #27 0x136c7a3 in toplev_main(int, char**)
/export/gnu/import/git/sources/gcc/gcc/toplev.c:1990^M
    #28 0x3743821ca4 in __libc_start_main (/lib64/libc.so.6+0x3743821ca4)^M
    #29 0x5d1e60
(/export/build/gnu/gcc-asan/build-x86_64-linux/gcc/f951+0x5d1e60)^M
^M
^[[1m^[[32m0x000003deb6cd is located 51 bytes to the left of global variable
'default_target_regs' from '/export/gnu/import/git/sources/gcc/gcc/reginfo.c'
(0x3deb700) of size 20488^M
^[[1m^[[0m^[[1m^[[32m0x000003deb6cd is located 0 bytes to the right of global
variable 'global_regs' from '/export/gnu/import/git/sources/gcc/gcc/reginfo.c'
(0x3deb680) of size 77^M

Reply via email to