Bug 35537 - gnat bug while compiling 4.3.0
Summary: gnat bug while compiling 4.3.0
Status: RESOLVED DUPLICATE of bug 32581
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.3.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-03-11 11:50 UTC by Michal Svoboda
Modified: 2008-03-11 12:07 UTC (History)
4 users (show)

See Also:
Host: x86_64-unknown-linux-gnu
Target: x86_64-unknown-linux-gnu
Build: x86_64-unknown-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michal Svoboda 2008-03-11 11:50:55 UTC
GCC 4.3.0 build fails with GNAT BUG, more info below

$ gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.2.3/configure --prefix=/usr --enable-threads --enable-shared --enable-languages=c,c++,ada,java,objc,fortran --host=x86_64-unknown-linux-gnu --with-system-zlib --with-x --enable-java-awt=gtk --enable-targets=x86_64-unknown-linux-gnu --with-arch=athlon64 --with-tune=athlon64 --with-cpu=athlon64 --disable-multilib --enable-__cxa_atexit --enable-libada --enable-gtk-cairo --enable-libgcj-multifile --with-long-double-128 --disable-nls
Thread model: posix
gcc version 4.2.3

(4.3.0 build configured with the same options except source dir ../gcc-4.3.0)

$ uname -a
Linux mouse 2.6.24.3 #6 PREEMPT Sat Mar 8 10:39:25 CET 2008 x86_64 GNU/Linux

$ gnat   
GNAT 4.2.3
Copyright 1996-2006, Free Software Foundation, Inc.
[...]

$ nice make profiledbootstrap
echo stagefeedback > stage_final
make[1]: Entering directory `/src/a/gcc/o'
make[2]: Entering directory `/src/a/gcc/o'
make[3]: Entering directory `/src/a/gcc/o'
rm -f stage_current
make distclean-stagefeedback
make[4]: Entering directory `/src/a/gcc/o'
rm -rf stagefeedback-* 
make[4]: Leaving directory `/src/a/gcc/o'
make[3]: Leaving directory `/src/a/gcc/o'
make[2]: Leaving directory `/src/a/gcc/o'
make[2]: Entering directory `/src/a/gcc/o'
make[3]: Entering directory `/src/a/gcc/o/libiberty'
make[4]: Entering directory `/src/a/gcc/o/libiberty/testsuite'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/src/a/gcc/o/libiberty/testsuite'
make[3]: Leaving directory `/src/a/gcc/o/libiberty'
make[3]: Entering directory `/src/a/gcc/o/intl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/intl'
make[3]: Entering directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty'
make[4]: Entering directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty/testsuite'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty/testsuite'
make[3]: Leaving directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty'
make[3]: Entering directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/fixincludes'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/fixincludes'
make[3]: Entering directory `/src/a/gcc/o/zlib'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc -march=athlon64 -pipe" "CFLAGS=-g -fkeep-inline-functions" "CXXFLAGS=-g -O2" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -g -O2  " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g -fkeep-inline-functions" "LIBCFLAGS_FOR_TARGET=-O2 -g -g -O2  " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/usr" "infodir=/usr/info" "libdir=/usr/lib" "prefix=/usr" "tooldir=/usr/x86_64-unknown-linux-gnu" "AR=ar" "AS=as" "CC=gcc -march=athlon64 -pipe" "CXX=g++ -march=athlon64 -pipe" "LD=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.2.3/../../../../x86_64-unknown-linux-gnu/bin/ld" "LIBCFLAGS=-g -fkeep-inline-functions" "NM=nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make[3]: Leaving directory `/src/a/gcc/o/zlib'
make[3]: Entering directory `/src/a/gcc/o/libcpp'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/libcpp'
make[3]: Entering directory `/src/a/gcc/o/libdecnumber'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/libdecnumber'
make[3]: Entering directory `/src/a/gcc/o/gcc'
make[3]: Leaving directory `/src/a/gcc/o/gcc'
Checking multilib configuration for libgcc...
make[3]: Entering directory `/src/a/gcc/o/x86_64-unknown-linux-gnu/libgcc'
# If this is the top-level multilib, build all the other
# multilibs.
# Early copyback; see "all" above for the rationale.  The
# early copy is necessary so that the gcc -B options find
# the right startup files when linking shared libgcc.
/bin/sh ../../../gcc-4.3.0/libgcc/../mkinstalldirs ../.././gcc
parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o crtprec32.o crtprec64.o crtprec80.o crtfastmath.o";                                        \
for file in $parts; do                                  \
  rm -f ../.././gcc/$file;              \
  /usr/bin/install -c -m 644 $file ../.././gcc/;        \
done
# @multilib_flags@ is still needed because this may use
# /src/a/gcc/o/./gcc/xgcc -B/src/a/gcc/o/./gcc/ -B/usr/x86_64-unknown-linux-gnu/bin/ -B/usr/x86_64-unknown-linux-gnu/lib/ -isystem /usr/x86_64-unknown-linux-gnu/include -isystem /usr/x86_64-unknown-linux-gnu/sys-include and -O2  -O2 -g -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  directly.
# @multilib_dir@ is not really necessary, but sometimes it has
# more uses than just a directory name.
/bin/sh ../../../gcc-4.3.0/libgcc/../mkinstalldirs .
/src/a/gcc/o/./gcc/xgcc -B/src/a/gcc/o/./gcc/ -B/usr/x86_64-unknown-linux-gnu/bin/ -B/usr/x86_64-unknown-linux-gnu/lib/ -isystem /usr/x86_64-unknown-linux-gnu/include -isystem /usr/x86_64-unknown-linux-gnu/sys-include -O2  -O2 -g -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -fkeep-inline-functions -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _enable_execute_stack_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o unwind-dw2_s.o unwind-dw2-fde-glibc_s.o unwind-sjlj_s.o gthr-gnat_s.o unwind-c_s.o emutls_s.o -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
# Now that we have built all the objects, we need to copy
# them back to the GCC directory.  Too many things (other
# in-tree libraries, and DejaGNU) know about the layout
# of the build tree, for now.
make install-leaf DESTDIR=../.././gcc \
  slibdir= libsubdir= MULTIOSDIR=.
make[4]: Entering directory `/src/a/gcc/o/x86_64-unknown-linux-gnu/libgcc'
/bin/sh ../../../gcc-4.3.0/libgcc/../mkinstalldirs ../.././gcc
/usr/bin/install -c -m 644 libgcc_eh.a ../.././gcc/
chmod 644 ../.././gcc/libgcc_eh.a
/usr/x86_64-unknown-linux-gnu/bin/ranlib ../.././gcc/libgcc_eh.a
/bin/sh ../../../gcc-4.3.0/libgcc/../mkinstalldirs ../.././gcc; /usr/bin/install -c -m 644 ./libgcc_s.so.1 ../.././gcc/libgcc_s.so.1; rm -f ../.././gcc/libgcc_s.so; ln -s libgcc_s.so.1 ../.././gcc/libgcc_s.so
/bin/sh ../../../gcc-4.3.0/libgcc/../mkinstalldirs ../.././gcc
/usr/bin/install -c -m 644 libgcc.a ../.././gcc/
chmod 644 ../.././gcc/libgcc.a
/usr/x86_64-unknown-linux-gnu/bin/ranlib ../.././gcc/libgcc.a
/usr/bin/install -c -m 644 libgcov.a ../.././gcc/
chmod 644 ../.././gcc/libgcov.a
/usr/x86_64-unknown-linux-gnu/bin/ranlib ../.././gcc/libgcov.a
parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o crtprec32.o crtprec64.o crtprec80.o crtfastmath.o";                                \
for file in $parts; do                                  \
  rm -f ../.././gcc/$file;              \
  /usr/bin/install -c -m 644 $file ../.././gcc/;        \
done
make[4]: Leaving directory `/src/a/gcc/o/x86_64-unknown-linux-gnu/libgcc'
make[3]: Leaving directory `/src/a/gcc/o/x86_64-unknown-linux-gnu/libgcc'
make[2]: Leaving directory `/src/a/gcc/o'
make[2]: Entering directory `/src/a/gcc/o'
make[3]: Entering directory `/src/a/gcc/o'
rm -f stage_current
make[3]: Leaving directory `/src/a/gcc/o'
make[2]: Leaving directory `/src/a/gcc/o'
make[2]: Entering directory `/src/a/gcc/o'
make[3]: Entering directory `/src/a/gcc/o/libiberty'
make[4]: Entering directory `/src/a/gcc/o/libiberty/testsuite'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/src/a/gcc/o/libiberty/testsuite'
make[3]: Leaving directory `/src/a/gcc/o/libiberty'
make[3]: Entering directory `/src/a/gcc/o/intl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/intl'
make[3]: Entering directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty'
make[4]: Entering directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty/testsuite'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty/testsuite'
make[3]: Leaving directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/libiberty'
make[3]: Entering directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/fixincludes'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/build-x86_64-unknown-linux-gnu/fixincludes'
make[3]: Entering directory `/src/a/gcc/o/zlib'
true "AR_FLAGS=rc" "CC_FOR_BUILD=/src/a/gcc/o/./prev-gcc/xgcc -B/src/a/gcc/o/./prev-gcc/ -B/usr/x86_64-unknown-linux-gnu/bin/" "CFLAGS=-g -O2 -fprofile-generate" "CXXFLAGS=-g -O2" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -g -O2  " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g -O2 -fprofile-generate" "LIBCFLAGS_FOR_TARGET=-O2 -g -g -O2  " "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/usr" "infodir=/usr/info" "libdir=/usr/lib" "prefix=/usr" "tooldir=/usr/x86_64-unknown-linux-gnu" "AR=ar" "AS=as" "CC=/src/a/gcc/o/./prev-gcc/xgcc -B/src/a/gcc/o/./prev-gcc/ -B/usr/x86_64-unknown-linux-gnu/bin/" "CXX=g++ -march=athlon64 -pipe" "LD=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.2.3/../../../../x86_64-unknown-linux-gnu/bin/ld" "LIBCFLAGS=-g -O2 -fprofile-generate" "NM=nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make[3]: Leaving directory `/src/a/gcc/o/zlib'
make[3]: Entering directory `/src/a/gcc/o/libcpp'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/libcpp'
make[3]: Entering directory `/src/a/gcc/o/libdecnumber'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/src/a/gcc/o/libdecnumber'
make[3]: Entering directory `/src/a/gcc/o/gcc'
/src/a/gcc/o/./prev-gcc/xgcc -B/src/a/gcc/o/./prev-gcc/ -B/usr/x86_64-unknown-linux-gnu/bin/ -c -g -O2 -fprofile-generate      -gnatpg -gnata -g -O1 -fno-inline \
 -nostdinc -I- -I. -Iada -I../../gcc-4.3.0/gcc/ada ../../gcc-4.3.0/gcc/ada/a-except.adb -o ada/a-except.o
../../gcc-4.3.0/gcc/ada/a-except.adb: In function 'Ada.Exceptions.Raise_From_Controlled_Operation':
../../gcc-4.3.0/gcc/ada/a-except.adb:1305: error: control flow in the middle of basic block 20
../../gcc-4.3.0/gcc/ada/a-except.adb:1305: error: control flow in the middle of basic block 20
../../gcc-4.3.0/gcc/ada/a-except.adb:1305: error: control flow in the middle of basic block 20
../../gcc-4.3.0/gcc/ada/a-except.adb:1305: error: control flow in the middle of basic block 20
+===========================GNAT BUG DETECTED==============================+
| 4.3.0 (x86_64-unknown-linux-gnu) verify_flow_info failed                 |
| Error detected around ../../gcc-4.3.0/gcc/ada/a-except.adb:1305          |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc or gnatmake command that you entered.              |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.



raised TYPES.UNRECOVERABLE_ERROR : comperr.adb:398
make[3]: *** [ada/a-except.o] Error 1
make[3]: Leaving directory `/src/a/gcc/o/gcc'
make[2]: *** [all-stageprofile-gcc] Error 2
make[2]: Leaving directory `/src/a/gcc/o'
make[1]: *** [stageprofile-bubble] Error 2
make[1]: Leaving directory `/src/a/gcc/o'
make: *** [profiledbootstrap] Error 2
Comment 1 Eric Botcazou 2008-03-11 12:07:54 UTC

*** This bug has been marked as a duplicate of 32581 ***