http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59648
--- Comment #7 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- You cannot use full paths for your test output, because creduce will run each iteration in a new directory. So try changing it from: -flto=4 -o /dev/null /home/dave2/$TESTCASE /home/dave2/libxservertest.a > /home/dave2/test.txt 2>&1 cat /home/dave2/test.txt | grep ... to: -flto=4 -o /dev/null $TESTCASE /home/dave2/libxservertest.a > test.txt 2>&1 cat test.txt | grep ... To reduce /home/dave2/libxservertest.a first extract its contents: ar x /home/dave2/libxservertest.a and then produce a list of the object files: ls -al *.o > list Edit "list" and prepend the full path to all object files. The run delta on "list" as described here: http://gcc.gnu.org/wiki/A_guide_to_testcase_reduction#Reducing_LTO_bugs and generate preprocessed source for the files. Now reduce the preprocessed files one by one. After a few iterations you'll end up with something like: x4 test # cat test.i long a; extern int noPanoramiXExtension, PanoramiXNumScreens, CheckVirtualMotion_x; typedef struct { int screens[16]; int numScreens; } ScreenInfo; ScreenInfo screenInfo; int fn1() { if (noPanoramiXExtension) { int i; i = PanoramiXNumScreens - 1; while (i--) CheckVirtualMotion_x = (long)screenInfo.screens[i]; } return 0; } int main() { screenInfo.numScreens = 0; a = (long)*fn1; return 0; } x4 test # cat panoramiX.i int PanoramiXNumScreens; int noPanoramiXExtension=1; int CheckVirtualMotion_x; x4 test # gcc -O2 -Werror=array-bounds test.i panoramiX.i x4 test # gcc -O2 -flto -Werror=array-bounds test.i panoramiX.i test.i: In function ‘fn1’: test.i:13:54: warning: iteration 16 invokes undefined behavior [-Waggressive-loop-optimizations] CheckVirtualMotion_x = (long)screenInfo.screens[i]; ^ test.i:12:11: note: containing loop while (i--) ^ test.i:13:54: error: array subscript is below array bounds [-Werror=array-bounds] CheckVirtualMotion_x = (long)screenInfo.screens[i]; ^ lto1: some warnings being treated as errors lto-wrapper: /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.0/gcc returned 1 exit status /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../x86_64-pc-linux-gnu/bin/ld: fatal error: lto-wrapper failed collect2: error: ld returned 1 exit status x4 test #