http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50144
Bug #: 50144 Summary: cc1plus double free / out of bounds read Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassig...@gcc.gnu.org ReportedBy: edwinto...@gmail.com Created attachment 25066 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25066 x.cpp Lately gcc 4.6.1 has been segfaulting quite often. Not always on the same file, but usually when building ClamAV in 'make distcheck' mode. See below for a double free stacktrace. Running valgrind on the preprocessed file doesn't show anything, but running valgrind on original GCC invocation shows some errors in the preprocessor. Here is a command that reproduces the valgrind error. $ valgrind /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus -quiet x.cpp -E >/dev/null The file x.cpp is attached, and has all #include removed and still shows the valgrind error: ==3237== Invalid read of size 8 ==3237== at 0xBFEFE9: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFF181: _cpp_clean_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFFB57: _cpp_get_fresh_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC012D1: _cpp_lex_direct (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC02116: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x5AE914: preprocess_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x5ACF1A: c_common_init (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x513228: cxx_init (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x7D40AC: toplev_main (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x3C7141EEAC: (below main) (libc-start.c:228) ==3237== Address 0x4ceb0c0 is 7,232 bytes inside a block of size 7,238 alloc'd ==3237== at 0x4A07882: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==3237== by 0xC2865C: xrealloc (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBF3E5B: _cpp_convert_input (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFC782: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFD17A: _cpp_stack_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFEA55: cpp_read_main_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x5AC72A: c_common_post_options (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x7D3BA2: toplev_main (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x3C7141EEAC: (below main) (libc-start.c:228) ==3237== ==3237== Invalid read of size 8 ==3237== at 0xBFEFD3: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFF181: _cpp_clean_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFFB57: _cpp_get_fresh_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC012D1: _cpp_lex_direct (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC02116: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x5AE914: preprocess_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x5ACF1A: c_common_init (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x513228: cxx_init (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x7D40AC: toplev_main (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x3C7141EEAC: (below main) (libc-start.c:228) ==3237== Address 0x4ceb0c0 is 7,232 bytes inside a block of size 7,238 alloc'd ==3237== at 0x4A07882: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==3237== by 0xC2865C: xrealloc (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBF3E5B: _cpp_convert_input (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFC782: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFD17A: _cpp_stack_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0xBFEA55: cpp_read_main_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x5AC72A: c_common_post_options (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x7D3BA2: toplev_main (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==3237== by 0x3C7141EEAC: (below main) (libc-start.c:228) $ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-6' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-multiarch --with-multiarch-defaults=x86_64-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/x86_64-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/x86_64-linux-gnu --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.6.1 (Debian 4.6.1-6) CXX MemoryBuiltins.lo *** glibc detected *** /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus: double free or corruption (out): 0x0000000002a0e280 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6[0x3c71472606] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c)[0x3c7147733c] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(ggc_internal_alloc_stat+0x25e)[0x5bb86e] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(ggc_internal_cleared_alloc_stat+0x16)[0x6c1446] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(make_node_stat+0x1f)[0x8e1fff] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(alloc_stmt_list+0x5a)[0x8059ca] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(push_stmt_list+0x6)[0x5b47f6] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x550e25] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(begin_if_stmt+0x15)[0x551765] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x5186ea] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x518fa3] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x519020] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x518b9f] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x518fa3] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x519020] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x525eec] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x52636b] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x5274b8] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x529c24] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x529d97] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x529faf] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x52d072] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x52c130] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x52c2c9] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x52d05e] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x52c130] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(c_parse_file+0x1f9)[0x52d3e9] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(c_common_parse_file+0x65)[0x5acfa5] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus(toplev_main+0xd82)[0x7d4552] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd)[0x3c7141eead] /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus[0x4b3c59] ======= Memory map: ======== 00400000-00f8d000 r-xp 00000000 fd:00 7209943 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus 0118d000-01198000 rw-p 00b8d000 fd:00 7209943 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus 01198000-012d4000 rw-p 00000000 00:00 0 0293f000-02a2b000 rw-p 00000000 00:00 0 [heap] 30bac00000-30bac15000 r-xp 00000000 fd:00 7471134 /lib/x86_64-linux-gnu/libgcc_s.so.1 30bac15000-30bae15000 ---p 00015000 fd:00 7471134 /lib/x86_64-linux-gnu/libgcc_s.so.1 30bae15000-30bae16000 rw-p 00015000 fd:00 7471134 /lib/x86_64-linux-gnu/libgcc_s.so.1 30bb000000-30bb0eb000 r-xp 00000000 fd:00 7209660 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16 30bb0eb000-30bb2eb000 ---p 000eb000 fd:00 7209660 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16 30bb2eb000-30bb2f3000 r--p 000eb000 fd:00 7209660 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16 30bb2f3000-30bb2f5000 rw-p 000f3000 fd:00 7209660 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16 30bb2f5000-30bb30a000 rw-p 00000000 00:00 0 30bb400000-30bb454000 r-xp 00000000 fd:00 6299423 /usr/lib/libmpfr.so.4.0.1 30bb454000-30bb653000 ---p 00054000 fd:00 6299423 /usr/lib/libmpfr.so.4.0.1 30bb653000-30bb655000 rw-p 00053000 fd:00 6299423 /usr/lib/libmpfr.so.4.0.1 30bb800000-30bbbff000 r-xp 00000000 fd:00 6292185 /usr/lib/libppl_c.so.4.0.0 30bbbff000-30bbdfe000 ---p 003ff000 fd:00 6292185 /usr/lib/libppl_c.so.4.0.0 30bbdfe000-30bbe03000 rw-p 003fe000 fd:00 6292185 /usr/lib/libppl_c.so.4.0.0 30bbe03000-30bbe04000 rw-p 00000000 00:00 0 30bc000000-30bc020000 r-xp 00000000 fd:00 6301246 /usr/lib/libcloog-debian.so.0.0.0 30bc020000-30bc21f000 ---p 00020000 fd:00 6301246 /usr/lib/libcloog-debian.so.0.0.0 30bc21f000-30bc220000 rw-p 0001f000 fd:00 6301246 /usr/lib/libcloog-debian.so.0.0.0 30bc220000-30bc222000 rw-p 00000000 00:00 0 30bc400000-30bc404000 r-xp 00000000 fd:00 6314913 /usr/lib/libpwl.so.5.0.0 30bc404000-30bc603000 ---p 00004000 fd:00 6314913 /usr/lib/libpwl.so.5.0.0 30bc603000-30bc604000 rw-p 00003000 fd:00 6314913 /usr/lib/libpwl.so.5.0.0 30bc800000-30bc8f6000 r-xp 00000000 fd:00 6298173 /usr/lib/libppl.so.9.0.0 30bc8f6000-30bcaf6000 ---p 000f6000 fd:00 6298173 /usr/lib/libppl.so.9.0.0 30bcaf6000-30bcaf9000 rw-p 000f6000 fd:00 6298173 /usr/lib/libppl.so.9.0.0 30bcc00000-30bcc03000 r-xp 00000000 fd:00 6312662 /usr/lib/libgmpxx.so.4.2.1 30bcc03000-30bce03000 ---p 00003000 fd:00 6312662 /usr/lib/libgmpxx.so.4.2.1 30bce03000-30bce04000 rw-p 00003000 fd:00 6312662 /usr/lib/libgmpxx.so.4.2.1 30bd000000-30bd014000 r-xp 00000000 fd:00 6317349 /usr/lib/libmpc.so.2.0.0 30bd014000-30bd214000 ---p 00014000 fd:00 6317349 /usr/lib/libmpc.so.2.0.0 30bd214000-30bd215000 rw-p 00014000 fd:00 6317349 /usr/lib/libmpc.so.2.0.0 30c1800000-30c186c000 r-xp 00000000 fd:00 6296889 /usr/lib/libgmp.so.10.0.1 30c186c000-30c1a6c000 ---p 0006c000 fd:00 6296889 /usr/lib/libgmp.so.10.0.1 30c1a6c000-30c1a74000 rw-p 0006c000 fd:00 6296889 /usr/lib/libgmp.so.10.0.1 3c71000000-3c7101f000 r-xp 00000000 fd:00 7471146 /lib/x86_64-linux-gnu/ld-2.13.so 3c7121f000-3c71220000 r--p 0001f000 fd:00 7471146 /lib/x86_64-linux-gnu/ld-2.13.so 3c71220000-3c71221000 rw-p 00020000 fd:00 7471146 /lib/x86_64-linux-gnu/ld-2.13.so 3c71221000-3c71222000 rw-p 00000000 00:00 0 3c71400000-3c7157a000 r-xp 00000000 fd:00 7471150 /lib/x86_64-linux-gnu/libc-2.13.so 3c7157a000-3c7177a000 ---p 0017a000 fd:00 7471150 /lib/x86_64-linux-gnu/libc-2.13.so 3c7177a000-3c7177e000 r--p 0017a000 fd:00 7471150 /lib/x86_64-linux-gnu/libc-2.13.so 3c7177e000-3c7177f000 rw-p 0017e000 fd:00 7471150 /lib/x86_64-linux-gnu/libc-2.13.so 3c7177f000-3c71784000 rw-p 00000000 00:00 0 3c71800000-3c71802000 r-xp 00000000 fd:00 7471155 /lib/x86_64-linux-gnu/libdl-2.13.so 3c71802000-3c71a02000 ---p 00002000 fd:00 7471155 /lib/x86_64-linux-gnu/libdl-2.13.so 3c71a02000-3c71a03000 r--p 00002000 fd:00 7471155 /lib/x86_64-linux-gnu/libdl-2.13.so 3c71a03000-3c71a04000 rw-p 00003000 fd:00 7471155 /lib/x86_64-linux-gnu/libdl-2.13.so 3c71c00000-3c71c81000 r-xp 00000000 fd:00 7471585 /lib/x86_64-linux-gnu/libm-2.13.so 3c71c81000-3c71e80000 ---p 00081000 fd:00 7471585 /lib/x86_64-linux-gnu/libm-2.13.so 3c71e80000-3c71e81000 r--p 00080000 fd:00 7471585 /lib/x86_64-linux-gnu/libm-2.13.so 3c71e81000-3c71e82000 rw-p 00081000 fd:00 7471585 /lib/x86_64-linux-gnu/libm-2.13.so 3c72400000-3c72418000 r-xp 00000000 fd:00 6292495 /usr/lib/libz.so.1.2.5 3c72418000-3c72617000 ---p 00018000 fd:00 6292495 /usr/lib/libz.so.1.2.5 3c72617000-3c72618000 rw-p 00017000 fd:00 6292495 /usr/lib/libz.so.1.2.5 2b1cfa8d8000-2b1cfa8da000 rw-p 00000000 00:00 0 2b1cfa90c000-2b1cfa914000 rw-p 00000000 00:00 0 2b1cfa914000-2b1cfab04000 r--p 00000000 fd:00 6311231 /usr/lib/locale/locale-archive 2b1cfab04000-2b1cfb20b000 rw-p 00000000 00:00 0 2b1cfb23f000-2b1cfc15d000 rw-p 00000000 00:00 0 2b1d00000000-2b1d00021000 rw-p 00000000 00:00 0 2b1d00021000-2b1d04000000 ---p 00000000 00:00 0 7fff84f0c000-7fff84f2d000 rw-p 00000000 00:00 0 [stack] 7fff84fff000-7fff85000000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] In file included from /usr/include/c++/4.6/ostream:588:0, from /usr/include/c++/4.6/iterator:64, from ../../../libclamav/c++/llvm/include/llvm/Use.h:31, from ../../../libclamav/c++/llvm/include/llvm/Value.h:18, from ../../../libclamav/c++/llvm/include/llvm/User.h:22, from ../../../libclamav/c++/llvm/include/llvm/Constant.h:17, from ../../../libclamav/c++/llvm/include/llvm/Constants.h:24, from ../../../libclamav/c++/llvm/lib/Analysis/MemoryBuiltins.cpp:16: /usr/include/c++/4.6/bits/ostream.tcc: In member function ‘std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::_M_insert(_ValueT)’: /usr/include/c++/4.6/bits/ostream.tcc:72:6: internal compiler error: Aborted Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions. $ valgrind --trace-children=yes g++ -DHAVE_CONFIG_H -I. -I../../../libclamav/c++ -I../../../libclamav/c++/../.. -I../../../libclamav/c++/.. -I./../../ -I../../../libclamav/c++/llvm/include -I./llvm/include -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D_DEBUG -D_GNU_SOURCE -Woverloaded-virtual -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -fno-exceptions -O2 -MT MemoryBuiltins.lo -MD -MP -MF .deps/MemoryBuiltins.Tpo -c ../../../libclamav/c++/llvm/lib/Analysis/MemoryBuiltins.cpp -fPIC -DPIC -o .libs/MemoryBuiltins.o ==24449== Memcheck, a memory error detector ==24449== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==24449== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info ==24449== Command: g++ -DHAVE_CONFIG_H -I. -I../../../libclamav/c++ -I../../../libclamav/c++/../.. -I../../../libclamav/c++/.. -I./../../ -I../../../libclamav/c++/llvm/include -I./llvm/include -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D_DEBUG -D_GNU_SOURCE -Woverloaded-virtual -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -fno-exceptions -O2 -MT MemoryBuiltins.lo -MD -MP -MF .deps/MemoryBuiltins.Tpo -c ../../../libclamav/c++/llvm/lib/Analysis/MemoryBuiltins.cpp -fPIC -DPIC -o .libs/MemoryBuiltins.o ==24449== ==24452== Memcheck, a memory error detector ==24452== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==24452== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info ==24452== Command: /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus -quiet -I . -I ../../../libclamav/c++ -I ../../../libclamav/c++/../.. -I ../../../libclamav/c++/.. -I ./../../ -I ../../../libclamav/c++/llvm/include -I ./llvm/include -MD .libs/MemoryBuiltins.d -MF .deps/MemoryBuiltins.Tpo -MP -MT MemoryBuiltins.lo -D_GNU_SOURCE -D HAVE_CONFIG_H -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -D _DEBUG -D _GNU_SOURCE -D PIC ../../../libclamav/c++/llvm/lib/Analysis/MemoryBuiltins.cpp -quiet -dumpbase MemoryBuiltins.cpp -mtune=generic -march=x86-64 -auxbase-strip .libs/MemoryBuiltins.o -O2 -Woverloaded-virtual -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -fno-exceptions -fPIC -o /tmp/ccZ0AHee.s ==24452== ==24452== Invalid read of size 8 ==24452== at 0xBFEFE9: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFF181: _cpp_clean_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFFB57: _cpp_get_fresh_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC012D1: _cpp_lex_direct (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02116: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5A93EC: c_lex_with_flags (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x51407F: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x52D292: c_parse_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5ACFA4: c_common_parse_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x7D4551: toplev_main (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== Address 0x4dc9fd0 is 3,248 bytes inside a block of size 3,254 alloc'd ==24452== at 0x4A07882: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24452== by 0xC2865C: xrealloc (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF3E5B: _cpp_convert_input (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFC782: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFD17A: _cpp_stack_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF55F0: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF60B0: _cpp_handle_directive (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02134: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5A93EC: c_lex_with_flags (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x51407F: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== ==24452== Invalid read of size 8 ==24452== at 0xBFEFD3: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFF181: _cpp_clean_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFFB57: _cpp_get_fresh_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC012D1: _cpp_lex_direct (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02116: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5A93EC: c_lex_with_flags (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x51407F: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x52D292: c_parse_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5ACFA4: c_common_parse_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x7D4551: toplev_main (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== Address 0x4e2a648 is 312 bytes inside a block of size 316 alloc'd ==24452== at 0x4A07882: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24452== by 0xC2865C: xrealloc (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF3E5B: _cpp_convert_input (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFC782: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFD17A: _cpp_stack_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF55F0: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF60B0: _cpp_handle_directive (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02134: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5A93EC: c_lex_with_flags (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x51407F: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== ==24452== Invalid read of size 8 ==24452== at 0xBFEFE9: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFF181: _cpp_clean_line (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFF744: _cpp_skip_block_comment (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC01DA9: _cpp_lex_direct (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02116: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF501A: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF5B47: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF60B0: _cpp_handle_directive (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02134: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5A93EC: c_lex_with_flags (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== Address 0x59f4f58 is 0 bytes after a block of size 12,888 alloc'd ==24452== at 0x4A07882: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24452== by 0xC2865C: xrealloc (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF3E5B: _cpp_convert_input (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFC782: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBFD17A: _cpp_stack_file (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF55F0: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xBF60B0: _cpp_handle_directive (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC02134: _cpp_lex_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04817: cpp_get_token (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0xC04AAF: cpp_get_token_with_location (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x5A93EC: c_lex_with_flags (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) ==24452== by 0x51407F: ??? (in /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6/cc1plus) Here is valgrind output for preprocessor only: $ valgrind /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1plus -quiet -v -I . -I ../../../libclamav/c++ -I ../../../libclamav/c++/../.. -I ../../../libclamav/c++/.. -I ./../../ -I ../../../libclamav/c++/llvm/include -I ./llvm/include -MD .libs/MemoryBuiltins.d -MF .deps/MemoryBuiltins.Tpo -MP -MT MemoryBuiltins.lo -D_GNU_SOURCE -D HAVE_CONFIG_H -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -D _DEBUG -D _GNU_SOURCE -D PIC ../../../libclamav/c++/llvm/lib/Analysis/MemoryBuiltins.cpp -quiet -dumpbase MemoryBuiltins.cpp -mtune=generic -march=x86-64 -auxbase-strip .libs/MemoryBuiltins.o -O2 -Woverloaded-virtual -pedantic -Wno-long-long -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -version -fno-exceptions -fPIC -o /tmp/cckXnKZv.s