On Wed, Nov 13, 2013 at 6:54 AM, Jeff Law <l...@redhat.com> wrote: > On 11/12/13 15:33, Dominique Dhumieres wrote: >> >> Bootstrapping with ada id broken by revision 204708 >> (at least on x86_64-apple-darwin13): >> >> ... >> # gnattools1 >> /Applications/Xcode.app/Contents/Developer/usr/bin/make -C >> ../gcc/ada/tools -f ../Makefile \ >> "CC=../../xgcc -B../../" "CXX=../../xg++ -B../../ >> -B../../../x86_64-apple-darwin13.0.0/libstdc++-v3/src/.libs >> -B../../../x86_64-apple-darwin13.0.0/libstdc++-v3/libsupc++/.libs >> -L../../../x86_64-apple-darwin13.0.0/libstdc++-v3/src/.libs >> -L../../../x86_64-apple-darwin13.0.0/libstdc++-v3/libsupc++/.libs" >> "CFLAGS=-g -O2 -W -Wall" "LDFLAGS=-static-libstdc++ -static-libgcc >> -Wl,-no_pie " "ADAFLAGS=-gnatpg -gnata" "ADA_CFLAGS=" "INCLUDES=-I. -I.. >> -I../.. -I/opt/gcc/work/gcc/ada -I/opt/gcc/work/gcc/config >> -I/opt/gcc/work/gcc/../include -I/opt/gcc/work/gcc" "ADA_INCLUDES=-I- >> -I../rts -I. -I/opt/gcc/work/gcc/ada" "exeext=" "fsrcdir=/opt/gcc/work/gcc" >> "srcdir=/opt/gcc/work/gcc" "GNATMAKE=../../gnatmake" >> "GNATLINK=../../gnatlink" "GNATBIND=../../gnatbind" "TOOLSCASE=native" \ >> ../../gnatmake ../../gnatlink >> ../../xgcc -B../../ -c -g -O2 -W -Wall -gnatpg -gnata -I- -I../rts -I. >> -I/opt/gcc/work/gcc/ada /opt/gcc/work/gcc/ada/make.adb -o make.o >> /opt/gcc/work/gcc/ada/make.adb: In function >> 'Make.Compile_Sources.Start_Compile_If_Possible': >> /opt/gcc/work/gcc/ada/make.adb:3312:7: error: control flow in the middle >> of basic block 550 >> +===========================GNAT BUG >> DETECTED==============================+ >> | 4.9.0 20131112 (experimental) [trunk revision 204710p13r1] >> (x86_64-apple-darwin13.0.0) GCC error:| >> | verify_flow_info failed >> | >> | Error detected around /opt/gcc/work/gcc/ada/make.adb:3312:7 >> | >> | 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. >> Consider also -gnatd.n switch (see debug.adb). >> >> ../rts/system.ads >> /opt/gcc/work/gcc/ada/make.adb >> /opt/gcc/work/gcc/ada/make.ads >> /opt/gcc/work/gcc/ada/ali.ads >> /opt/gcc/work/gcc/ada/casing.ads >> /opt/gcc/work/gcc/ada/types.ads >> ... >> >> TIA > > Sigh. The load is considered a potentially throwing statement, which means > it ends a block and thus we can't immediately follow the null-deref with a > trap, the trap would have to be in another block. ugh. I'm going to have to > think about this a bit.
Mark it with TREE_NOTHROW (but it should have been that way already, or EH code should have been present before the path elimination - otherwise the incoming GIMPLE would have had exactly the same problem). Note that externally throwing stmts are not an issue. Richard. > jeff