[Bug lto/59723] [4.9 Regression] ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Sat Jan 11 21:02:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59723
--- Comment #12 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> This untested patch gets rid of the majority of the failures, although
> I still see 2-3 errors in the dwarf code in tests like namelist_70.cf90:
Using
time make -k -j8 check-gfortran
RUNTESTFLAGS="--target_board=unix'{-m32/-flto,-m64/-flto}'"
I see the following (26) failures
FAIL: gfortran.dg/debug/pr35154-dwarf2.f -gdwarf-2 scan-assembler (DW_AT_name:
"label"|"label[^\n]*"[^\n]*DW_AT_name)
FAIL: gfortran.dg/debug/pr35154-dwarf2.f -gdwarf-2 -g3 scan-assembler
(DW_AT_name: "label"|"label[^\n]*"[^\n]*DW_AT_name)
FAIL: gfortran.dg/bind_c_array_params_2.f90 -O scan-assembler-times myBindC
1
FAIL: gfortran.dg/bind_c_vars.f90 -O0 (test for excess errors)
FAIL: gfortran.dg/bind_c_vars.f90 -O1 (test for excess errors)
FAIL: gfortran.dg/bind_c_vars.f90 -O2 (test for excess errors)
FAIL: gfortran.dg/bind_c_vars.f90 -O3 -fomit-frame-pointer (test for excess
errors)
FAIL: gfortran.dg/bind_c_vars.f90 -O3 -fomit-frame-pointer -funroll-loops
(test for excess errors)
FAIL: gfortran.dg/bind_c_vars.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions (test for excess errors)
FAIL: gfortran.dg/bind_c_vars.f90 -O3 -g (test for excess errors)
FAIL: gfortran.dg/bind_c_vars.f90 -Os (test for excess errors)
FAIL: gfortran.dg/data_namelist_conflict.f90 -O0 (internal compiler error)
FAIL: gfortran.dg/data_namelist_conflict.f90 -O0 (test for excess errors)
FAIL: gfortran.dg/data_namelist_conflict.f90 -O3 -g (internal compiler error)
FAIL: gfortran.dg/data_namelist_conflict.f90 -O3 -g (test for excess errors)
FAIL: gfortran.dg/namelist_14.f90 -O3 -g (internal compiler error)
FAIL: gfortran.dg/namelist_14.f90 -O3 -g (test for excess errors)
FAIL: gfortran.dg/namelist_51.f90 -O3 -g (test for excess errors)
FAIL: gfortran.dg/namelist_69.f90 -O3 -g (internal compiler error)
FAIL: gfortran.dg/namelist_69.f90 -O3 -g (test for excess errors)
FAIL: gfortran.dg/namelist_70.f90 -O3 -g (internal compiler error)
FAIL: gfortran.dg/namelist_70.f90 -O3 -g (test for excess errors)
FAIL: gfortran.dg/pr48636-2.f90 -O scan-ipa-dump cp "Creating a specialized
node of bar/[0-9]*\\."
FAIL: gfortran.dg/pr52835.f90 -O scan-tree-dump optimized "bar "
FAIL: gfortran.dg/pr53787.f90 -O scan-ipa-dump cp "Creating a specialized
node of init"
FAIL: gfortran.dg/pr53787.f90 -O scan-ipa-dump-times cp "Aggregate
replacements" 2
The failures for gfortran.dg/bind_c_vars.f90 are PR54852.
The ICEs for gfortran.dg/namelist_(14|69|70).f90, triggered by -g, are at
default:
gcc_unreachable ();
(missing case NAMELIST_DECL: ?).
On darwin13, the excess error for gfortran.dg/namelist_51.f90 is
warning: invalid DWARF generated by the compiler: DIE 0x000001f0 has multiple
AT_calling_convention attributes in
'/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//ccD0Z3SE.ltrans0.ltrans.o'.
The ICE for gfortran.dg/data_namelist_conflict.f90 at -O or with -g is
lto1: internal compiler error: in lto_fixup_prevailing_decls, at lto/lto.c:2601
at
gcc_checking_assert (code != CONSTRUCTOR && code != TREE_BINFO);
I have not looked at the scan issues nor at the debug capabilities with/without
the patch.
Concerning the time, the full regtesting of gfortran with -m32 and -m64 takes
~18' without -flto and ~35' with it. The full testing of all languages but go
is ~2h. Is the saving of 17' of CPU over 2h worth the missed testing and the
man power required to handle the problems?
Thanks for working on this PR.
More information about the Gcc-bugs
mailing list