Line causing the error: g++ -fvisibility=hidden -fvisibility-inlines-hidden -W -Wall -Wpointer-arith -O3 -ggdb -pipe -D_REENTRANT -DACE_HAS_AIO_CALLS -D_GNU_SOURCE -I/home/gabriel/Vigilance/3rdParty/ace/ACE_wrappers -DACE_HAS_EXCEPTIONS -D__ACE_INLINE__ -I../../.. -c -o .obj/Sets.o Sets.cpp g++: Internal error: Segmentation fault (program cc1plus) Please submit a full bug report. See <http://gcc.gnu.org/bugs.html> for instructions. make[1]: *** [.obj/Sets.o] Error 1 make[1]: Leaving directory `/home/gabriel/Vigilance/3rdParty/ace/ACE_wrappers/examples/APG/Containers' make: *** [Sets] Error 2 OS: CentOS release 5.4 (Final) GCC was built with no optional settings. This is the config.log output: This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by configure, which was generated by GNU Autoconf 2.59. Invocation command line was $ ../gcc-4.4.3/configure ## --------- ## ## Platform. ## ## --------- ## hostname = VibeDEV.vibesec-hq.com uname -m = i686 uname -r = 2.6.18-164.9.1.el5PAE uname -s = Linux uname -v = #1 SMP Tue Dec 15 21:41:47 EST 2009 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = i686 /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /usr/local/pgsql/bin PATH: /sbin PATH: /usr/local/ssl/bin PATH: /usr/lib/qt-3.3/bin PATH: /usr/kerberos/bin PATH: /usr/local/bin PATH: /bin PATH: /usr/bin PATH: /home/gabriel/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:1563: checking build system type configure:1581: result: i686-pc-linux-gnu configure:1616: checking host system type configure:1630: result: i686-pc-linux-gnu configure:1638: checking target system type configure:1652: result: i686-pc-linux-gnu configure:1696: checking for a BSD-compatible install configure:1762: result: /usr/bin/install -c configure:1773: checking whether ln works configure:1795: result: yes configure:1799: checking whether ln -s works configure:1803: result: yes configure:3002: checking for gcc configure:3018: found /usr/local/bin/gcc configure:3028: result: gcc configure:3274: checking for C compiler version configure:3277: gcc --version </dev/null >&5 gcc (GCC) 4.4.3 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3280: $? = 0 configure:3282: gcc -v </dev/null >&5 Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.4.3/configure Thread model: posix gcc version 4.4.3 (GCC) configure:3285: $? = 0 configure:3287: gcc -V </dev/null >&5 gcc: '-V' option must have argument configure:3290: $? = 1 configure:3313: checking for C compiler default output file name configure:3316: gcc conftest.c >&5 configure:3319: $? = 0 configure:3367: result: a.out configure:3372: checking whether the C compiler works configure:3378: ./a.out configure:3381: $? = 0 configure:3400: result: yes configure:3407: checking whether we are cross compiling configure:3409: result: no configure:3412: checking for suffix of executables configure:3414: gcc -o conftest conftest.c >&5 configure:3417: $? = 0 configure:3444: result: configure:3450: checking for suffix of object files configure:3471: gcc -c conftest.c >&5 configure:3474: $? = 0 configure:3498: result: o configure:3502: checking whether we are using the GNU C compiler configure:3526: gcc -c conftest.c >&5 configure:3532: $? = 0 configure:3536: test -z || test ! -s conftest.err configure:3539: $? = 0 configure:3542: test -s conftest.o configure:3545: $? = 0 configure:3558: result: yes configure:3564: checking whether gcc accepts -g configure:3585: gcc -c -g conftest.c >&5 configure:3591: $? = 0 configure:3595: test -z || test ! -s conftest.err configure:3598: $? = 0 configure:3601: test -s conftest.o configure:3604: $? = 0 configure:3615: result: yes configure:3632: checking for gcc option to accept ANSI C configure:3702: gcc -c -g -O2 conftest.c >&5 configure:3708: $? = 0 configure:3712: test -z || test ! -s conftest.err configure:3715: $? = 0 configure:3718: test -s conftest.o configure:3721: $? = 0 configure:3739: result: none needed configure:3757: gcc -c -g -O2 conftest.c >&5 conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' configure:3763: $? = 1 configure: failed program was: | #ifndef __cplusplus | choke me | #endif configure:3948: checking for g++ configure:3964: found /usr/local/bin/g++ configure:3974: result: g++ configure:3990: checking for C++ compiler version configure:3993: g++ --version </dev/null >&5 g++ (GCC) 4.4.3 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3996: $? = 0 configure:3998: g++ -v </dev/null >&5 Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.4.3/configure Thread model: posix gcc version 4.4.3 (GCC) configure:4001: $? = 0 configure:4003: g++ -V </dev/null >&5 g++: '-V' option must have argument configure:4006: $? = 1 configure:4009: checking whether we are using the GNU C++ compiler configure:4033: g++ -c conftest.cc >&5 configure:4039: $? = 0 configure:4043: test -z || test ! -s conftest.err configure:4046: $? = 0 configure:4049: test -s conftest.o configure:4052: $? = 0 configure:4065: result: yes configure:4071: checking whether g++ accepts -g configure:4092: g++ -c -g conftest.cc >&5 configure:4098: $? = 0 configure:4102: test -z || test ! -s conftest.err configure:4105: $? = 0 configure:4108: test -s conftest.o configure:4111: $? = 0 configure:4122: result: yes configure:4164: g++ -c -g -O2 conftest.cc >&5 configure:4170: $? = 0 configure:4174: test -z || test ! -s conftest.err configure:4177: $? = 0 configure:4180: test -s conftest.o configure:4183: $? = 0 configure:4209: g++ -c -g -O2 conftest.cc >&5 conftest.cc: In function 'int main()': conftest.cc:13: error: 'exit' was not declared in this scope configure:4215: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | /* end confdefs.h. */ | | int | main () | { | exit (42); | ; | return 0; | } configure:4164: g++ -c -g -O2 conftest.cc >&5 conftest.cc:9: error: 'void std::exit(int)' should have been declared inside 'std' configure:4170: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | /* end confdefs.h. */ | extern "C" void std::exit (int) throw (); using std::exit; | #include <stdlib.h> | int | main () | { | exit (42); | ; | return 0; | } configure:4164: g++ -c -g -O2 conftest.cc >&5 conftest.cc:9: error: 'void std::exit(int)' should have been declared inside 'std' In file included from conftest.cc:10: /usr/include/stdlib.h:646: error: declaration of 'void std::exit(int) throw ()' throws different exceptions conftest.cc:9: error: from previous declaration 'void std::exit(int)' configure:4170: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | /* end confdefs.h. */ | extern "C" void std::exit (int); using std::exit; | #include <stdlib.h> | int | main () | { | exit (42); | ; | return 0; | } configure:4164: g++ -c -g -O2 conftest.cc >&5 configure:4170: $? = 0 configure:4174: test -z || test ! -s conftest.err configure:4177: $? = 0 configure:4180: test -s conftest.o configure:4183: $? = 0 configure:4209: g++ -c -g -O2 conftest.cc >&5 configure:4215: $? = 0 configure:4219: test -z || test ! -s conftest.err configure:4222: $? = 0 configure:4225: test -s conftest.o configure:4228: $? = 0 configure:4315: checking for gnatbind configure:4342: result: no configure:4395: checking for gnatmake configure:4422: result: no configure:4434: checking whether compiler driver understands Ada configure:4457: result: no configure:4466: checking how to compare bootstrapped objects configure:4491: result: cmp --ignore-initial=16 $$f1 $$f2 configure:4612: checking for correct version of gmp.h configure:4635: gcc -c -g -O2 conftest.c >&5 configure:4641: $? = 0 configure:4645: test -z || test ! -s conftest.err configure:4648: $? = 0 configure:4651: test -s conftest.o configure:4654: $? = 0 configure:4656: result: yes configure:4670: checking for correct version of mpfr.h configure:4701: gcc -o conftest -g -O2 conftest.c -lmpfr -lgmp >&5 configure:4707: $? = 0 configure:4711: test -z || test ! -s conftest.err configure:4714: $? = 0 configure:4717: test -s conftest configure:4720: $? = 0 configure:4744: gcc -o conftest -g -O2 conftest.c -lmpfr -lgmp >&5 configure:4750: $? = 0 configure:4754: test -z || test ! -s conftest.err configure:4757: $? = 0 configure:4760: test -s conftest configure:4763: $? = 0 configure:4765: result: yes configure:4890: checking for version 0.10 of PPL configure:4912: gcc -c -g -O2 -I/include conftest.c >&5 conftest.c:12:19: error: ppl_c.h: No such file or directory conftest.c: In function 'main': conftest.c:18: error: 'choke' undeclared (first use in this function) conftest.c:18: error: (Each undeclared identifier is reported only once conftest.c:18: error: for each function it appears in.) conftest.c:18: error: expected ';' before 'me' configure:4918: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #ifdef __cplusplus | extern "C" void exit (int) throw (); | #endif | /* end confdefs.h. */ | #include "ppl_c.h" | int | main () | { | | #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR != 10 | choke me | #endif | | ; | return 0; | } configure:4939: result: no configure:5009: checking for correct version of CLooG configure:5031: gcc -c -g -O2 -I/include -DCLOOG_PPL_BACKEND conftest.c >&5 conftest.c:12:25: error: cloog/cloog.h: No such file or directory conftest.c: In function 'main': conftest.c:18: error: 'choke' undeclared (first use in this function) conftest.c:18: error: (Each undeclared identifier is reported only once conftest.c:18: error: for each function it appears in.) conftest.c:18: error: expected ';' before 'me' configure:5037: $? = 1 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #ifdef __cplusplus | extern "C" void exit (int) throw (); | #endif | /* end confdefs.h. */ | #include "cloog/cloog.h" | int | main () | { | | #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 | choke me | #endif | | ; | return 0; | } configure:5058: result: no configure:6402: checking for bison configure:6418: found /usr/bin/bison configure:6428: result: bison -y configure:6448: checking for bison configure:6464: found /usr/bin/bison configure:6474: result: bison configure:6493: checking for gm4 configure:6522: result: no configure:6493: checking for gnum4 configure:6522: result: no configure:6493: checking for m4 configure:6509: found /usr/bin/m4 configure:6519: result: m4 configure:6538: checking for flex configure:6554: found /usr/local/bin/flex configure:6564: result: flex configure:6584: checking for flex configure:6600: found /usr/local/bin/flex configure:6610: result: flex configure:6629: checking for makeinfo configure:6645: found /usr/bin/makeinfo configure:6655: result: makeinfo configure:6688: checking for expect configure:6717: result: no configure:6735: checking for runtest configure:6764: result: no configure:6874: checking for ar configure:6890: found /usr/local/bin/ar configure:6900: result: ar configure:7009: checking for as configure:7025: found /usr/local/bin/as configure:7035: result: as configure:7144: checking for dlltool configure:7173: result: no configure:7202: checking for ld configure:7228: result: /usr/local/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../i686-pc-linux-gnu/bin/ld configure:7414: checking for lipo configure:7443: result: no configure:7549: checking for nm configure:7565: found /usr/local/bin/nm configure:7575: result: nm configure:7684: checking for ranlib configure:7700: found /usr/local/bin/ranlib configure:7710: result: ranlib configure:7814: checking for strip configure:7830: found /usr/local/bin/strip configure:7840: result: strip configure:7944: checking for windres configure:7973: result: no configure:8079: checking for windmc configure:8108: result: no configure:8214: checking for objcopy configure:8230: found /usr/local/bin/objcopy configure:8240: result: objcopy configure:8349: checking for objdump configure:8365: found /usr/local/bin/objdump configure:8375: result: objdump configure:8523: checking for cc configure:8539: found /usr/bin/cc configure:8549: result: cc configure:8678: checking for c++ configure:8694: found /usr/local/bin/c++ configure:8704: result: c++ configure:8833: checking for gcc configure:8849: found /usr/local/bin/gcc configure:8859: result: gcc configure:8983: checking for gcj configure:8999: found /usr/local/bin/gcj configure:9009: result: gcj configure:9138: checking for gfortran configure:9154: found /usr/local/bin/gfortran configure:9164: result: gfortran configure:9227: checking for ar configure:9245: found /usr/local/i686-pc-linux-gnu/bin/ar configure:9257: result: /usr/local/i686-pc-linux-gnu/bin/ar configure:9450: checking for as configure:9468: found /usr/local/i686-pc-linux-gnu/bin/as configure:9480: result: /usr/local/i686-pc-linux-gnu/bin/as configure:9673: checking for dlltool configure:9706: result: no configure:9818: checking for dlltool configure:9847: result: no configure:9896: checking for ld configure:9914: found /usr/local/i686-pc-linux-gnu/bin/ld configure:9926: result: /usr/local/i686-pc-linux-gnu/bin/ld configure:10119: checking for lipo configure:10152: result: no configure:10264: checking for lipo configure:10293: result: no configure:10342: checking for nm configure:10360: found /usr/local/i686-pc-linux-gnu/bin/nm configure:10372: result: /usr/local/i686-pc-linux-gnu/bin/nm configure:10565: checking for objdump configure:10583: found /usr/local/i686-pc-linux-gnu/bin/objdump configure:10595: result: /usr/local/i686-pc-linux-gnu/bin/objdump configure:10788: checking for ranlib configure:10806: found /usr/local/i686-pc-linux-gnu/bin/ranlib configure:10818: result: /usr/local/i686-pc-linux-gnu/bin/ranlib configure:11011: checking for strip configure:11029: found /usr/local/i686-pc-linux-gnu/bin/strip configure:11041: result: /usr/local/i686-pc-linux-gnu/bin/strip configure:11234: checking for windres configure:11267: result: no configure:11379: checking for windres configure:11408: result: no configure:11457: checking for windmc configure:11490: result: no configure:11602: checking for windmc configure:11631: result: no configure:11658: checking where to find the target ar configure:11686: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:11700: checking where to find the target as configure:11728: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:11742: checking where to find the target cc configure:11765: result: just compiled configure:11784: checking where to find the target c++ configure:11810: result: just compiled configure:11829: checking where to find the target c++ for libstdc++ configure:11855: result: just compiled configure:11874: checking where to find the target dlltool configure:11907: result: host tool configure:11916: checking where to find the target gcc configure:11939: result: just compiled configure:11958: checking where to find the target gcj configure:11984: result: just compiled configure:12003: checking where to find the target gfortran configure:12029: result: just compiled configure:12048: checking where to find the target ld configure:12076: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:12090: checking where to find the target lipo configure:12112: result: host tool configure:12121: checking where to find the target nm configure:12149: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:12163: checking where to find the target objdump configure:12191: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:12205: checking where to find the target ranlib configure:12233: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:12247: checking where to find the target strip configure:12275: result: pre-installed in /usr/local/i686-pc-linux-gnu/bin configure:12289: checking where to find the target windres configure:12322: result: host tool configure:12331: checking where to find the target windmc configure:12364: result: host tool configure:12401: checking whether to enable maintainer-specific portions of Makefiles configure:12410: result: no configure:12443: checking whether -fkeep-inline-functions is supported configure:12467: gcc -c -g -O2 -fkeep-inline-functions conftest.c >&5 configure:12473: $? = 0 configure:12477: test -z || test ! -s conftest.err configure:12480: $? = 0 configure:12483: test -s conftest.o configure:12486: $? = 0 configure:12488: result: yes configure:12705: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by config.status, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on VibeDEV.vibesec-hq.com config.status:770: creating Makefile ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=i686-pc-linux-gnu ac_cv_build_alias=i686-pc-linux-gnu ac_cv_c_compiler_gnu=yes ac_cv_cxx_compiler_gnu=yes ac_cv_env_AR_FOR_TARGET_set= ac_cv_env_AR_FOR_TARGET_value= ac_cv_env_AR_set= ac_cv_env_AR_value= ac_cv_env_AS_FOR_TARGET_set= ac_cv_env_AS_FOR_TARGET_value= ac_cv_env_AS_set= ac_cv_env_AS_value= ac_cv_env_CC_FOR_TARGET_set= ac_cv_env_CC_FOR_TARGET_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CXXFLAGS_set= ac_cv_env_CXXFLAGS_value= ac_cv_env_CXX_FOR_TARGET_set= ac_cv_env_CXX_FOR_TARGET_value= ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_DLLTOOL_FOR_TARGET_set= ac_cv_env_DLLTOOL_FOR_TARGET_value= ac_cv_env_DLLTOOL_set= ac_cv_env_DLLTOOL_value= ac_cv_env_GCC_FOR_TARGET_set= ac_cv_env_GCC_FOR_TARGET_value= ac_cv_env_GCJ_FOR_TARGET_set= ac_cv_env_GCJ_FOR_TARGET_value= ac_cv_env_GFORTRAN_FOR_TARGET_set= ac_cv_env_GFORTRAN_FOR_TARGET_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LD_FOR_TARGET_set= ac_cv_env_LD_FOR_TARGET_value= ac_cv_env_LD_set= ac_cv_env_LD_value= ac_cv_env_LIPO_FOR_TARGET_set= ac_cv_env_LIPO_FOR_TARGET_value= ac_cv_env_LIPO_set= ac_cv_env_LIPO_value= ac_cv_env_NM_FOR_TARGET_set= ac_cv_env_NM_FOR_TARGET_value= ac_cv_env_NM_set= ac_cv_env_NM_value= ac_cv_env_OBJCOPY_set= ac_cv_env_OBJCOPY_value= ac_cv_env_OBJDUMP_FOR_TARGET_set= ac_cv_env_OBJDUMP_FOR_TARGET_value= ac_cv_env_OBJDUMP_set= ac_cv_env_OBJDUMP_value= ac_cv_env_RANLIB_FOR_TARGET_set= ac_cv_env_RANLIB_FOR_TARGET_value= ac_cv_env_RANLIB_set= ac_cv_env_RANLIB_value= ac_cv_env_STRIP_FOR_TARGET_set= ac_cv_env_STRIP_FOR_TARGET_value= ac_cv_env_STRIP_set= ac_cv_env_STRIP_value= ac_cv_env_WINDMC_FOR_TARGET_set= ac_cv_env_WINDMC_FOR_TARGET_value= ac_cv_env_WINDMC_set= ac_cv_env_WINDMC_value= ac_cv_env_WINDRES_FOR_TARGET_set= ac_cv_env_WINDRES_FOR_TARGET_value= ac_cv_env_WINDRES_set= ac_cv_env_WINDRES_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_exeext= ac_cv_host=i686-pc-linux-gnu ac_cv_host_alias=i686-pc-linux-gnu ac_cv_objext=o ac_cv_path_AR_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/ar ac_cv_path_AS_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/as ac_cv_path_LD_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/ld ac_cv_path_NM_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/nm ac_cv_path_OBJDUMP_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/objdump ac_cv_path_RANLIB_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/ranlib ac_cv_path_STRIP_FOR_TARGET=/usr/local/i686-pc-linux-gnu/bin/strip ac_cv_path_install='/usr/bin/install -c' ac_cv_prog_AR=ar ac_cv_prog_AS=as ac_cv_prog_BISON=bison ac_cv_prog_CC_FOR_TARGET=cc ac_cv_prog_CXX_FOR_TARGET=c++ ac_cv_prog_FLEX=flex ac_cv_prog_GCC_FOR_TARGET=gcc ac_cv_prog_GCJ_FOR_TARGET=gcj ac_cv_prog_GFORTRAN_FOR_TARGET=gfortran ac_cv_prog_LD=/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../i686-pc-linux-gnu/bin/ld ac_cv_prog_LEX=flex ac_cv_prog_M4=m4 ac_cv_prog_MAKEINFO=makeinfo ac_cv_prog_NM=nm ac_cv_prog_OBJCOPY=objcopy ac_cv_prog_OBJDUMP=objdump ac_cv_prog_RANLIB=ranlib ac_cv_prog_STRIP=strip ac_cv_prog_YACC='bison -y' ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_ac_ct_CXX=g++ ac_cv_prog_ac_ct_GNATBIND=no ac_cv_prog_ac_ct_GNATMAKE=no ac_cv_prog_cc_g=yes ac_cv_prog_cc_stdc= ac_cv_prog_cxx_g=yes ac_cv_target=i686-pc-linux-gnu ac_cv_target_alias=i686-pc-linux-gnu acx_cv_cc_gcc_supports_ada=no acx_cv_prog_LN=ln gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2' gcc_cv_tool_dirs=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.4.3:/usr/local/libexec/gcc/i686-pc-linux-gnu:/usr/lib/gcc/i686-pc-linux-gnu/4.4.3:/usr/lib/gcc/i686-pc-linux-gnu:/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu/4.4.3:/usr/local/i686-pc-linux-gnu/bin: gcc_cv_tool_prefix=/usr/local ## ----------------- ## ## Output variables. ## ## ----------------- ## AR='ar' AR_FOR_BUILD='$(AR)' AR_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/ar' AS='as' AS_FOR_BUILD='$(AS)' AS_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/as' BISON='bison' CC='gcc' CC_FOR_BUILD='$(CC)' CC_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/' CFLAGS='-g -O2' CFLAGS_FOR_BUILD='-g -O2' CFLAGS_FOR_TARGET='-g -O2' COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as' COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld' COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm' CONFIGURE_GDB_TK='' CPPFLAGS='' CXX='g++' CXXFLAGS='-g -O2' CXXFLAGS_FOR_BUILD='-g -O2' CXXFLAGS_FOR_TARGET='-g -O2' CXX_FOR_BUILD='$(CXX)' CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' DEBUG_PREFIX_CFLAGS_FOR_TARGET='' DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" ' DLLTOOL='dlltool' DLLTOOL_FOR_BUILD='$(DLLTOOL)' DLLTOOL_FOR_TARGET='$(DLLTOOL)' ECHO_C='' ECHO_N='-n' ECHO_T='' EXEEXT='' EXPECT='expect' FLAGS_FOR_TARGET=' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' FLEX='flex' GCC_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/' GCC_SHLIB_SUBDIR='' GCJ_FOR_BUILD='$(GCJ)' GCJ_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/' GDB_TK='' GFORTRAN_FOR_BUILD='$(GFORTRAN)' GFORTRAN_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/' GNATBIND='no' GNATMAKE='no' INSTALL_DATA='${INSTALL} -m 644' INSTALL_GDB_TK='' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' LD='/usr/local/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../../i686-pc-linux-gnu/bin/ld' LDFLAGS='' LDFLAGS_FOR_BUILD='' LD_FOR_BUILD='$(LD)' LD_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/ld' LEX='flex' LIBOBJS='' LIBS='-L/lib -lcloog -L/lib -lppl_c -lppl -lgmpxx ' LIPO='lipo' LIPO_FOR_TARGET='$(LIPO)' LN='ln' LN_S='ln -s' LTLIBOBJS='' M4='m4' MAINT='#' MAINTAINER_MODE_FALSE='' MAINTAINER_MODE_TRUE='#' MAKEINFO='makeinfo' NM='nm' NM_FOR_BUILD='$(NM)' NM_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/nm' OBJCOPY='objcopy' OBJDUMP='objdump' OBJDUMP_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/objdump' OBJEXT='o' PACKAGE_BUGREPORT='' PACKAGE_NAME='' PACKAGE_STRING='' PACKAGE_TARNAME='' PACKAGE_VERSION='' PATH_SEPARATOR=':' RANLIB='ranlib' RANLIB_FOR_BUILD='$(RANLIB)' RANLIB_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/ranlib' RAW_CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' RPATH_ENVVAR='LD_LIBRARY_PATH' RUNTEST='runtest' SHELL='/bin/sh' STRIP='strip' STRIP_FOR_TARGET='/usr/local/i686-pc-linux-gnu/bin/strip' SYSROOT_CFLAGS_FOR_TARGET='' TOPLEVEL_CONFIGURE_ARGUMENTS='../gcc-4.4.3/configure' WINDMC='windmc' WINDMC_FOR_BUILD='$(WINDMC)' WINDMC_FOR_TARGET='$(WINDMC)' WINDRES='windres' WINDRES_FOR_BUILD='$(WINDRES)' WINDRES_FOR_TARGET='$(WINDRES)' YACC='bison -y' ac_ct_CC='gcc' ac_ct_CXX='g++' ac_ct_GNATBIND='no' ac_ct_GNATMAKE='no' bindir='${exec_prefix}/bin' build='i686-pc-linux-gnu' build_alias='' build_configargs='--cache-file=../config.cache '--enable-languages=c,c++,fortran,java,objc' --program-transform-name='s,y,y,'' build_configdirs=' libiberty fixincludes' build_cpu='i686' build_libsubdir='build-i686-pc-linux-gnu' build_noncanonical='i686-pc-linux-gnu' build_os='linux-gnu' build_subdir='build-i686-pc-linux-gnu' build_tooldir='${exec_prefix}/i686-pc-linux-gnu' build_vendor='pc' clooginc='' clooglibs='' config_shell='/bin/sh' configdirs=' intl libiberty zlib libcpp libdecnumber fixincludes gcc' datadir='${prefix}/share' datarootdir='${prefix}/share' do_compare='cmp --ignore-initial=16 $$f1 $$f2' docdir='${datarootdir}/doc' exec_prefix='${prefix}' extra_mpfr_configure_flags='' gmpinc='' gmplibs='-lmpfr -lgmp' host='i686-pc-linux-gnu' host_alias='' host_configargs='--cache-file=./config.cache '--enable-languages=c,c++,fortran,java,objc' --program-transform-name='s,y,y,'' host_cpu='i686' host_noncanonical='i686-pc-linux-gnu' host_os='linux-gnu' host_subdir='.' host_vendor='pc' htmldir='${docdir}' includedir='${prefix}/include' infodir='${prefix}/info' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localstatedir='${prefix}/var' mandir='${prefix}/man' oldincludedir='/usr/include' pdfdir='${docdir}' pplinc='' ppllibs='' prefix='/usr/local' program_transform_name='s,y,y,' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' stage1_cflags='-g -fkeep-inline-functions' stage1_checking='--enable-checking=yes,types' stage1_languages='c' stage2_werror_flag='' sysconfdir='${prefix}/etc' target='i686-pc-linux-gnu' target_alias='' target_configargs='--cache-file=./config.cache --enable-multilib '--enable-languages=c,c++,fortran,java,objc' --program-transform-name='s,y,y,'' target_cpu='i686' target_noncanonical='i686-pc-linux-gnu' target_os='linux-gnu' target_subdir='i686-pc-linux-gnu' target_vendor='pc' tooldir='${exec_prefix}/i686-pc-linux-gnu' ## ------------- ## ## Output files. ## ## ------------- ## alphaieee_frag='/dev/null' host_makefile_frag='../gcc-4.4.3/config/mh-x86omitfp' ospace_frag='/dev/null' serialization_dependencies='serdep.tmp' target_makefile_frag='../gcc-4.4.3/config/mt-gnu' ## ----------- ## ## confdefs.h. ## ## ----------- ## #define PACKAGE_BUGREPORT "" #define PACKAGE_NAME "" #define PACKAGE_STRING "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #endif #ifdef __cplusplus extern "C" void exit (int) throw (); configure: exit 0
Severity should be "normal" and a testcase is needed to reproduce the problem.
The error occurs when building ACE (http://www.cs.wustl.edu/~schmidt/ACE.html) with gcc 4.4.3
Please provide a self-contained pre-processed (*.ii) file, per: http://gcc.gnu.org/bugs/#report
Created attachment 19721 [details] self-contained pre-processed (Sets.ii) in TAR GZ format
ICE with at 4.4.3 and -O3 but not 4.4.2 or -O2
Reducing.
int *foo (); struct A { static int a (); }; template <class T> struct B { B (unsigned); int b1 (const T &); T *b2; unsigned b3, b4; }; template <class T> int B <T>::b1 (const T &x) { unsigned i = 0; for (; i < b3; i++) if (i < b4) { b2[i] = x; *foo () = 12; return -1; } } struct C { C operator= (C x) { c3 = x.c1 (); return *this; } ~C () {} int c1 () { return c3; } void c2 (int x) { c3 = x; } int c3; }; void bar () { B <C> b (100); C c[100]; for (int i = 0; i < 100; i++) { c[i].c2 (i); b.b1 (c[i]); if (b.b1 (c[i])) A::a (); } }
Mine.
We're translating { {plus_expr,i_96,1}, {component_ref b2,b}, {component_ref c3,array_ref i_96,c}, {plus_expr,i_29,1} } through ;; basic block 21, loop depth 1, count 0 ;; prev block 7, next block 8 ;; pred: 4 [95.5%] (false,exec) ;; succ: 8 [100.0%] (fallthru) <bb 21>: ;; basic block 8, loop depth 2, count 0 ;; prev block 21, next block 25 ;; pred: 25 [100.0%] (fallthru,dfs_back) 21 [100.0%] (fallthru) ;; succ: 25 [95.5%] (true,exec) 19 [4.5%] (false,exec) <bb 8>: Invalid sum of incoming frequencies 9512, should be 9120 # i_10 = PHI <i_29(25), 0(21)> i_29 = i_10 + 1; if (i_29 < D.2275_92) goto <bb 25>; else goto <bb 19>; during partial-antic computation. And we recurse endlessly phi-translating {plus_expr,i_96,1} already. Because the leader for i_96 we are translating is {component_ref c3,array_ref i_96,c} where we recursively reach i_96 and its leader again. The whole function: void bar() () { unsigned int D.2295; unsigned int D.2294; struct C * D.2291; int * D.2287; unsigned int i; int SR.6; unsigned int D.2275; unsigned int D.2274; struct C * D.2271; int * D.2267; unsigned int i; int save_filt.3; void * save_eptr.2; register struct C * D.2182; int i; struct C c[100]; struct B b; <bb 2>: __comp_ctor (&b, 100); <bb 3>: # i_96 = PHI <i_14(28), 0(2)> c[i_96].c3 = i_96; D.2275_92 = b.b3; if (D.2275_92 != 0) goto <bb 4>; else goto <bb 20>; <bb 20>: goto <bb 12>; <bb 4>: D.2274_93 = b.b4; if (D.2274_93 != 0) goto <bb 5>; else goto <bb 21>; <bb 5>: Invalid sum of incoming frequencies 38, should be 430 D.2271_24 = b.b2; D.2271_24->c3 = i_96; D.2267_28 = foo (); <bb 6>: *D.2267_28 = 12; D.2295_3 = b.b3; if (D.2295_3 != 0) goto <bb 22>; else goto <bb 23>; <bb 23>: goto <bb 12>; <bb 22>: <bb 7>: # D.2295_107 = PHI <D.2295_3(22), D.2295_104(19)> D.2294_100 = b.b4; if (D.2294_100 != 0) goto <bb 9>; else goto <bb 24>; <bb 21>: <bb 8>: Invalid sum of incoming frequencies 9512, should be 9120 # i_10 = PHI <i_29(25), 0(21)> i_29 = i_10 + 1; if (i_29 < D.2275_92) goto <bb 25>; else goto <bb 19>; <bb 25>: goto <bb 8>; <bb 9>: Invalid sum of incoming frequencies 38, should be 430 SR.6_33 = c[i_96].c3; D.2291_34 = b.b2; D.2291_34->c3 = SR.6_33; D.2287_38 = foo (); <bb 10>: *D.2287_38 = 12; goto <bb 12>; <bb 24>: <bb 11>: Invalid sum of incoming frequencies 9512, should be 9120 # i_98 = PHI <i_39(26), 0(24)> i_39 = i_98 + 1; if (D.2295_107 > i_39) goto <bb 26>; else goto <bb 27>; <bb 26>: goto <bb 11>; <bb 27>: <bb 12>: a (); <bb 13>: i_14 = i_96 + 1; if (i_14 <= 99) goto <bb 28>; else goto <bb 29>; <bb 28>: goto <bb 3>; <L6>: save_filt.3_15 = [filter_expr] <<<filter object>>>; save_eptr.2_16 = [exc_ptr_expr] <<<exception object>>>; <bb 15>: # D.2182_106 = PHI <D.2182_18(30), &c[100](14)> D.2182_18 = D.2182_106 + -4; if (&c[0] == D.2182_18) goto <bb 16>; else goto <bb 30>; <bb 30>: goto <bb 15>; <bb 16>: Invalid sum of outgoing probabilities 0.0% <<<exception object>>> = save_eptr.2_16; <<<filter object>>> = save_filt.3_15; resx 1 <bb 29>: <bb 17>: # D.2182_51 = PHI <D.2182_20(31), &c[100](29)> D.2182_20 = D.2182_51 + -4; if (&c[0] == D.2182_20) goto <bb 18>; else goto <bb 31>; <bb 31>: goto <bb 17>; <bb 18>: return; <bb 19>: D.2295_104 = b.b3; goto <bb 7>; }
Sort-of same IL with trunk if you make C c[100] global. But there's not a single EH edge on trunk?! which likely makes it work there.
Testcase that also fails on trunk: struct C { ~C (); int c3; }; C *b2; static void b1 (const C &x, unsigned b3, unsigned b4) { unsigned i = 0; for (; i < b3; i++) if (i < b4) { b2[0].c3 = x.c3; return; } } int a (); void bar (unsigned b3, unsigned b4) { C c[100]; for (int i = 0; i < 100; i++) { c[i].c3 = i; for (int j = 0; j < b3; j++) if (j < b4) { b2[0].c3 = 0; break; } b1 (c[i], b3, b4); a (); } }
In the testcase from comment #11 on trunk when translating PA_IN [7], { i_45 (0028), {b2}@.MEM_46 (0007), {component_ref<c3>,array_ref<i_45,0,4>,c}@.MEM_21 (0022), {plus_expr,i_45,1} (0009) } to block 20 we first translate {component_ref<c3>,array_ref<i_45,0,4>,c}@.MEM_21 (0022) which is translated to {component_ref<c3>,array_ref<i_45,0,4>,c}@.MEM_26 (0028). Later we translate i_45 (0028) to i_45 (0028), but when entering that into the sets the value is already present. Thus, this particular case is fixed by value-replacing the translated expression in phi_translate_set. But that does not sound like a proper solution. It looks more like an issue of sorting. Though doing the value-replacement in case of the translation being a name looks not too weird. Danny? Is this something that should not happen because of some constraints which are possibly violated? Index: gcc/tree-ssa-pre.c =================================================================== --- gcc/tree-ssa-pre.c (revision 156276) +++ gcc/tree-ssa-pre.c (working copy) @@ -1834,12 +1834,20 @@ phi_translate_set (bitmap_set_t dest, bi { pre_expr translated; translated = phi_translate (expr, set, NULL, pred, phiblock); + if (!translated) + continue; /* Don't add empty translations to the cache */ if (translated) phi_trans_add (expr, translated, pred); - if (translated != NULL) + /* We might end up with multiple expressions from SET being + translated to the same value. In this case we do not want + to retain the NARY or REFERENCE expression but prefer a NAME + which would be the leader. */ + if (translated->kind == NAME) + bitmap_value_replace_in_set (dest, translated); + else bitmap_value_insert_into_set (dest, translated); } VEC_free (pre_expr, heap, exprs);
Subject: Bug 42871 Author: rguenth Date: Thu Jan 28 14:45:09 2010 New Revision: 156324 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156324 Log: 2010-01-28 Richard Guenther <rguenther@suse.de> PR tree-optimization/42871 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders. * g++.dg/torture/pr42871.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/torture/pr42871.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-pre.c
Fixed for 4.5 sofar. Let's see if there is any fallout.
After doing a yum update on FC12 we found that FC12 now also has gcc 4.4.3-4 which also has this bug when compiling ACE
Subject: Bug 42871 Author: rguenth Date: Sat Feb 13 14:50:50 2010 New Revision: 156750 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156750 Log: 2010-02-13 Richard Guenther <rguenther@suse.de> PR tree-optimization/42871 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders. * g++.dg/torture/pr42871.C: New testcase. Added: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr42871.C Modified: branches/gcc-4_4-branch/gcc/ChangeLog branches/gcc-4_4-branch/gcc/testsuite/ChangeLog branches/gcc-4_4-branch/gcc/tree-ssa-pre.c
Fixed.