[Bug middle-end/45484] Invalid memory access in gcc.c-torture/execute/builtins/sprintf-chk.c

hjl dot tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Sep 2 13:52:00 GMT 2010



------- Comment #14 from hjl dot tools at gmail dot com  2010-09-02 13:52 -------
On Linux/x86, -fPIC triggered invalid memory access:

[hjl@gnu-6 gcc]$ valgrind --tool=memcheck ./cc1 -fpreprocessed
/tmp/sprintf-chk.i -quiet -dumpbase sprintf-chk.i -m32 -mtune=generic
-march=x86-64 -auxbase sprintf-chk -Os -w -version -fpic -o sprintf-chk.s
==8036== Memcheck, a memory error detector
==8036== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==8036== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==8036== Command: ./cc1 -fpreprocessed /tmp/sprintf-chk.i -quiet -dumpbase
sprintf-chk.i -m32 -mtune=generic -march=x86-64 -auxbase sprintf-chk -Os -w
-version -fpic -o sprintf-chk.s
==8036== 
GNU C (GCC) version 4.6.0 20100901 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP
version 4.3.2, MPFR version 2.4.2-p3, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 4.6.0 20100901 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.4.4 20100630 (Red Hat 4.4.4-10), GMP
version 4.3.2, MPFR version 2.4.2-p3, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 5013623740daff515d54e379ca68fe2e
==8036== Invalid read of size 8
==8036==    at 0x67F8A2: dwarf2out_notice_stack_adjust (dwarf2out.c:1624)
==8036==    by 0x681BD7: dwarf2out_frame_debug (dwarf2out.c:2744)
==8036==    by 0xCC2DD1: output_set_got (i386.c:8127)
==8036==    by 0xEACFD2: output_615 (i386.md:11477)
==8036==    by 0x719262: get_insn_template (final.c:1731)
==8036==    by 0x71A9C7: final_scan_insn (final.c:2609)
==8036==    by 0x719178: final (final.c:1716)
==8036==    by 0x71D885: rest_of_handle_final (final.c:4235)
==8036==    by 0x8F68AA: execute_one_pass (passes.c:1568)
==8036==    by 0x8F6A99: execute_pass_list (passes.c:1623)
==8036==    by 0x8F6ABA: execute_pass_list (passes.c:1624)
==8036==    by 0x8F6ABA: execute_pass_list (passes.c:1624)
==8036==  Address 0xb8ee848 is 0 bytes after a block of size 2,472 alloc'd
==8036==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==8036==    by 0x1118BB3: xmalloc (xmalloc.c:147)
==8036==    by 0x67EFA1: compute_barrier_args_size (dwarf2out.c:1429)
==8036==    by 0x67F873: dwarf2out_notice_stack_adjust (dwarf2out.c:1619)
==8036==    by 0x681BD7: dwarf2out_frame_debug (dwarf2out.c:2744)
==8036==    by 0x719E79: final_scan_insn (final.c:2015)
==8036==    by 0x719178: final (final.c:1716)
==8036==    by 0x71D885: rest_of_handle_final (final.c:4235)
==8036==    by 0x8F68AA: execute_one_pass (passes.c:1568)
==8036==    by 0x8F6A99: execute_pass_list (passes.c:1623)
==8036==    by 0x8F6ABA: execute_pass_list (passes.c:1624)
==8036==    by 0x8F6ABA: execute_pass_list (passes.c:1624)
==8036== 
==8036== 
==8036== HEAP SUMMARY:
==8036==     in use at exit: 432,089 bytes in 1,754 blocks
==8036==   total heap usage: 15,425 allocs, 13,671 frees, 7,502,579 bytes
allocated
==8036== 
==8036== LEAK SUMMARY:
==8036==    definitely lost: 0 bytes in 0 blocks
==8036==    indirectly lost: 0 bytes in 0 blocks
==8036==      possibly lost: 16,064 bytes in 2 blocks
==8036==    still reachable: 416,025 bytes in 1,752 blocks
==8036==         suppressed: 0 bytes in 0 blocks
==8036== Rerun with --leak-check=full to see details of leaked memory
==8036== 
==8036== For counts of detected and suppressed errors, rerun with: -v
==8036== ERROR SUMMARY: 5 errors from 1 contexts (suppressed: 6 from 6)
[hjl@gnu-6 gcc]$ 


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ubizjak at gmail dot com
  GCC build triplet|x86_64-apple-darwin10       |
   GCC host triplet|x86_64-apple-darwin10       |
 GCC target triplet|x86_64-apple-darwin10       |
            Summary|r163660 ICEs gcc.c-         |Invalid memory access in
                   |torture/execute/builtins/spr|gcc.c-
                   |intf-chk.c compilation,  -Os|torture/execute/builtins/spr
                   |at -m32                     |intf-chk.c
   Target Milestone|---                         |4.6.0


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



More information about the Gcc-bugs mailing list