http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53407
Bug #: 53407 Summary: ICE compiling pcre-8.21 in function_and_variable_visibility, at ipa.c:1002 Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: rainer-gccb...@7val.com g++ throws an ICE when linking pcre-8.21 with -flto, it works with -O3. Since the bug is in the linker phase, I don't have any preprocessed files I could attach. The pcre source code is available at ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ If required, I can supply the entire source directory, including the object files used in the link line below, or any subset thereof. The GCC used is the default Version included in Ubuntu 12.04 x86_64. $ g++ -v -save-temps -fPIC -DPIC -shared -nostdlib Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --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.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-save-temps' '-fPIC' '-D' 'PIC' '-shared' '-nostdlib' '-LDEST/lib' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib' '-L/lib/x86_64-linux-gnu' '-L/lib/../lib' '-L/usr/lib/x86_64-linux-gnu' '-L/usr/lib/../lib' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../..' '-O3' '-mtune=core2' '-march=core2' '-flto' '-o' '.libs/libpcrecpp.so.0.0.0' '-shared-libgcc' /usr/lib/gcc/x86_64-linux-gnu/4.6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/4.6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper -plugin-opt=-fresolution=libpcrecpp.so.res -flto --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -shared -z relro -o .libs/libpcrecpp.so.0.0.0 -LDEST/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbeginS.o .libs/pcrecpp.o .libs/pcre_scanner.o .libs/pcre_stringpiece.o -rpath /home/build/fit3/build/src/external/pcre-8.21_/.libs -rpath /tmp/pcre/lib ./.libs/libpcre.so -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crtn.o -soname libpcrecpp.so.0 g++ @/tmp/ccQdRwkk.args Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --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.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) COLLECT_GCC_OPTIONS='-c' '-v' '-save-temps' '-fPIC' '-D' 'PIC' '-shared' '-nostdlib' '-LDEST/lib' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib' '-L/lib/x86_64-linux-gnu' '-L/lib/../lib' '-L/usr/lib/x86_64-linux-gnu' '-L/usr/lib/../lib' '-L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../..' '-O3' '-mtune=core2' '-march=core2' '-shared-libgcc' '-dumpdir' '.libs/' '-dumpbase' 'libpcrecpp.so.0.0.0.wpa' '-fltrans-output-list=libpcrecpp.so.0.0.0.ltrans.out' '-fwpa' '-fresolution=libpcrecpp.so.res' '-shared-libgcc' /usr/lib/gcc/x86_64-linux-gnu/4.6/lto1 -quiet -dumpdir .libs/ -dumpbase libpcrecpp.so.0.0.0.wpa -mtune=core2 -march=core2 -auxbase pcrecpp -O3 -version -fPIC -fltrans-output-list=libpcrecpp.so.0.0.0.ltrans.out -fwpa -fresolution=libpcrecpp.so.res @/tmp/ccBM3qRl GNU GIMPLE (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu) compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU GIMPLE (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (x86_64-linux-gnu) compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 lto1: internal compiler error: in function_and_variable_visibility, at ipa.c:1002 Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions. lto-wrapper: g++ returned 1 exit status [Leaving LTRANS libpcrecpp.so.0.0.0.ltrans.out] [Leaving LTRANS /tmp/ccQdRwkk.args] /usr/bin/ld: lto-wrapper failed collect2: ld returned 1 exit status