A binary search has led to the cause of a serious regression on mainline with gfortran at *all optimization levels (ie., -O0, -O1 and -O2)*. The problematic commit is
2005-02-13 Jason Merrill <[EMAIL PROTECTED]> PR mudflap/19319 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return slot explicit. PR c++/16405 * fold-const.c (fold_indirect_ref_1): Split out from... (build_fold_indirect_ref): Here. (fold_indirect_ref): New fn. * tree.h: Declare it. * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref. (gimplify_modify_expr_rhs): Likewise. (gimplify_expr): Likewise. troutmask:sgk[271] cvs update -D '2005-02-12 22:45' |& tee sgk.log troutmask:sgk[274] grep -v "cvs update" sgk.log C .cvsignore P gcc/ChangeLog P gcc/fold-const.c P gcc/gimplify.c P gcc/tree.h M gcc/fortran/check.c M gcc/fortran/intrinsic.c M gcc/fortran/intrinsic.h M gcc/fortran/resolve.c M gcc/fortran/simplify.c P gcc/testsuite/ChangeLog U gcc/testsuite/gcc.dg/pr15784-1.c U gcc/testsuite/gcc.dg/pr15784-2.c U gcc/testsuite/gcc.dg/pr15784-3.c M libgfortran/intrinsics/date_and_time.c where the 6 gfortran changes do not cause the problem. If I use -D '2005-02-12 22:30', which eliminates the above cited commit, I get a working gfortran. Additionally, a 'gmake check-gfortran' with or without this commit shows no new regressions. The regression is apparent with the test programs that come with the implementation of BLAS that accompanies LAPACK from ftp.netlib.org. If I use the -D '2005-02-12 22:30' sources, gfortran produces no failures with the BLAS test programs. If I use the -D '2005-02-12 22:45' sources, which includes the above cited commit, I get the following: troutmask:sgk[280] grep -i fail testing/*out testing/xblat2c.out: ******* CTRMV FAILED ON CALL NUMBER: testing/xblat2c.out: ******* CTBMV FAILED ON CALL NUMBER: testing/xblat2c.out: ******* CTPMV FAILED ON CALL NUMBER: testing/xblat2c.out: ******* CTRSV FAILED ON CALL NUMBER: testing/xblat2c.out: ******* CTBSV FAILED ON CALL NUMBER: testing/xblat2c.out: ******* CTPSV FAILED ON CALL NUMBER: testing/xblat2d.out: ******* DTRMV FAILED ON CALL NUMBER: testing/xblat2d.out: ******* DTBMV FAILED ON CALL NUMBER: testing/xblat2d.out: ******* DTPMV FAILED ON CALL NUMBER: testing/xblat2d.out: ******* DTRSV FAILED ON CALL NUMBER: testing/xblat2d.out: ******* DTBSV FAILED ON CALL NUMBER: testing/xblat2d.out: ******* DTPSV FAILED ON CALL NUMBER: testing/xblat2s.out: ******* STRMV FAILED ON CALL NUMBER: testing/xblat2s.out: ******* STBMV FAILED ON CALL NUMBER: testing/xblat2s.out: ******* STPMV FAILED ON CALL NUMBER: testing/xblat2s.out: ******* STRSV FAILED ON CALL NUMBER: testing/xblat2s.out: ******* STBSV FAILED ON CALL NUMBER: testing/xblat2s.out: ******* STPSV FAILED ON CALL NUMBER: testing/xblat2z.out: ******* ZHEMV FAILED ON CALL NUMBER: testing/xblat2z.out: ******* ZHBMV FAILED ON CALL NUMBER: testing/xblat2z.out: ******* ZHER FAILED ON CALL NUMBER: testing/xblat2z.out: ******* ZHPR FAILED ON CALL NUMBER: testing/xblat3c.out: ******* CGEMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CGEMM FAILED ON CALL NUMBER: testing/xblat3c.out: ******* CHEMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CHEMM FAILED ON CALL NUMBER: testing/xblat3c.out: ******* CSYMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CSYMM FAILED ON CALL NUMBER: testing/xblat3c.out: ******* CTRMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CTRMM FAILED ON CALL NUMBER: testing/xblat3c.out: ******* CTRSM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CTRSM FAILED ON CALL NUMBER: testing/xblat3c.out: ******* CHERK FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CSYRK FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CHER2K FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3c.out: ******* CSYR2K FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3d.out: ******* DGEMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3d.out: ******* DGEMM FAILED ON CALL NUMBER: testing/xblat3d.out: ******* DTRMM FAILED ON CALL NUMBER: testing/xblat3d.out: ******* DTRSM FAILED ON CALL NUMBER: testing/xblat3d.out: ******* DSYRK FAILED ON CALL NUMBER: testing/xblat3s.out: ******* SGEMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3s.out: ******* STRMM FAILED ON CALL NUMBER: testing/xblat3s.out: ******* STRSM FAILED ON CALL NUMBER: testing/xblat3s.out: ******* SSYR2K FAILED ON CALL NUMBER: testing/xblat3z.out: ******* ZGEMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZGEMM FAILED ON CALL NUMBER: testing/xblat3z.out: ******* ZHEMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZSYMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZTRMM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZTRSM FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZHERK FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZHERK FAILED ON CALL NUMBER: testing/xblat3z.out: ******* ZSYRK FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZSYRK FAILED ON CALL NUMBER: testing/xblat3z.out: ******* ZHER2K FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZHER2K FAILED ON CALL NUMBER: testing/xblat3z.out: ******* ZSYR2K FAILED THE TESTS OF ERROR-EXITS ******* testing/xblat3z.out: ******* ZSYR2K FAILED ON CALL NUMBER: That is, all level 2 and level 3 BLAS routines exhibit some failures. This is a major regression. Please consider reverting the commit. If reverting is out of the question then please fix the commit, so gfortran once again functions. troutmask:sgk[276] gfc -v Using built-in specs. Target: amd64-unknown-freebsd6.0 Configured with: /usr/tmp/sgk/gcc/configure --enable-languages=c,f95 \ --prefix=/usr/tmp/sgk --program-suffix=4 --disable-libmudflap Thread model: posix gcc version 4.0.0 20050213 (experimental) -- Steve