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

--- Comment #5 from Ian Lance Taylor <ian at airs dot com> ---
This is easy enough to recreate--do you really need valgrind output?

In any case, here it is.

> cat foo.c
#include <stdc-predef.h>

> valgrind gcc/cc1 foo.c
==25367== Memcheck, a memory error detector
==25367== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==25367== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==25367== Command: gcc/cc1 foo.c
==25367== 
vex amd64->IR: unhandled instruction bytes: 0xF3 0x48 0xF 0xBC 0xC3 0x48 0x98
0x48
==25367== valgrind: Unrecognised instruction at address 0x608f90.
==25367==    at 0x608F90: init_ggc() (hwint.h:260)
==25367==    by 0x99DDEE: toplev_main(int, char**) (toplev.c:1157)
==25367==    by 0x5A3176C: (below main) (libc-start.c:226)
==25367== Your program just tried to execute an instruction that Valgrind
==25367== did not recognise.  There are two possible reasons for this.
==25367== 1. Your program has a bug and erroneously jumped to a non-code
==25367==    location.  If you are running Memcheck and you just saw a
==25367==    warning about a bad jump, it's probably your program's fault.
==25367== 2. The instruction is legitimate but Valgrind doesn't handle it,
==25367==    i.e. it's Valgrind's fault.  If you think this is the case or
==25367==    you are not sure, please let us know and we'll try to fix it.
==25367== Either way, Valgrind will now raise a SIGILL signal which will
==25367== probably kill your program.
==25367== Invalid read of size 4
==25367==    at 0xF1CC8D: linemap_location_from_macro_expansion_p(line_maps*,
unsigned int) (line-map.c:948)
==25367==    by 0xF1CE2E: linemap_lookup(line_maps*, unsigned int)
(line-map.c:642)
==25367==    by 0x9DC257:
virt_loc_aware_diagnostic_finalizer(diagnostic_context*, diagnostic_info*)
(tree-diagnostic.c:111)
==25367==    by 0xF02837: diagnostic_report_diagnostic(diagnostic_context*,
diagnostic_info*) (diagnostic.c:801)
==25367==    by 0xF0357F: internal_error(char const*, ...) (diagnostic.c:1136)
==25367==    by 0x99C70F: crash_signal(int) (toplev.c:337)
==25367==    by 0x5A4649F: ??? (in /lib/x86_64-linux-gnu/libc-2.15.so)
==25367==    by 0x608F8F: init_ggc() (hwint.h:307)
==25367==    by 0x99DDEE: toplev_main(int, char**) (toplev.c:1157)
==25367==    by 0x5A3176C: (below main) (libc-start.c:226)
==25367==  Address 0x24 is not stack'd, malloc'd or (recently) free'd
==25367== 
cc1: internal compiler error: Illegal instruction
==25367== 
==25367== Process terminating with default action of signal 11 (SIGSEGV)
==25367==  Access not within mapped region at address 0x24
==25367==    at 0xF1CC8D: linemap_location_from_macro_expansion_p(line_maps*,
unsigned int) (line-map.c:948)
==25367==    by 0xF1CE2E: linemap_lookup(line_maps*, unsigned int)
(line-map.c:642)
==25367==    by 0x9DC257:
virt_loc_aware_diagnostic_finalizer(diagnostic_context*, diagnostic_info*)
(tree-diagnostic.c:111)
==25367==    by 0xF02837: diagnostic_report_diagnostic(diagnostic_context*,
diagnostic_info*) (diagnostic.c:801)
==25367==    by 0xF0357F: internal_error(char const*, ...) (diagnostic.c:1136)
==25367==    by 0x99C70F: crash_signal(int) (toplev.c:337)
==25367==    by 0x5A4649F: ??? (in /lib/x86_64-linux-gnu/libc-2.15.so)
==25367==    by 0xF1CC8C: linemap_location_from_macro_expansion_p(line_maps*,
unsigned int) (line-map.c:948)
==25367==    by 0xF1CE2E: linemap_lookup(line_maps*, unsigned int)
(line-map.c:642)
==25367==    by 0x9DC257:
virt_loc_aware_diagnostic_finalizer(diagnostic_context*, diagnostic_info*)
(tree-diagnostic.c:111)
==25367==    by 0xF02837: diagnostic_report_diagnostic(diagnostic_context*,
diagnostic_info*) (diagnostic.c:801)
==25367==    by 0xF0357F: internal_error(char const*, ...) (diagnostic.c:1136)
==25367==  If you believe this happened as a result of a stack
==25367==  overflow in your program's main thread (unlikely but
==25367==  possible), you can try to increase the size of the
==25367==  main thread stack using the --main-stacksize= flag.
==25367==  The main thread stack size used in this run was 67108864.
==25367== 
==25367== HEAP SUMMARY:
==25367==     in use at exit: 22,246 bytes in 10 blocks
==25367==   total heap usage: 266 allocs, 256 frees, 45,231 bytes allocated
==25367== 
==25367== LEAK SUMMARY:
==25367==    definitely lost: 31 bytes in 1 blocks
==25367==    indirectly lost: 0 bytes in 0 blocks
==25367==      possibly lost: 0 bytes in 0 blocks
==25367==    still reachable: 22,215 bytes in 9 blocks
==25367==         suppressed: 0 bytes in 0 blocks
==25367== Rerun with --leak-check=full to see details of leaked memory
==25367== 
==25367== For counts of detected and suppressed errors, rerun with: -v
==25367== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 2 from 2)
Segmentation fault (core dumped)

Reply via email to