On Sat, Apr 24, 2010 at 3:28 PM, Toon Moene <t...@moene.org> wrote: > While compiling our Weather Forecasting code with the latest trunk, I got > the following (don't know how long this has been a problem, as I haven't > tried -flto recently): > > lto1: internal compiler error: in lto_symtab_merge_decls_1, at > lto-symtab.c:549 > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://gcc.gnu.org/bugs.html> for instructions. > lto-wrapper: gfortran returned 1 exit status > /usr/snp/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/bin/ld: > fatal error: lto-wrapper failed > collect2: ld returned 1 exit status > > lto-symtab.c:549: > > 524 > 525 /* Helper to process the decl chain for the symbol table entry *SLOT. > */ > 526 > 527 static int > 528 lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED) > .... > 545 /* Assert it's the only one. */ > 546 if (prevailing) > 547 for (e = prevailing->next; e; e = e->next) > 548 gcc_assert (e->resolution != LDPR_PREVAILING_DEF_IRONLY > 549 && e->resolution != LDPR_PREVAILING_DEF); > > Of course, I'd like to make a test case out of this - but what is this > assert checking ?
It is checking that for one symbol we only have one definition. You are using -fuse-linker-plugin? Richard. > Reducing from several 100's of thousands of lines of > Fortran might be more difficult than to reason from first principles about > how this assert might be hit. > > Thanks in advance, > > -- > Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290 > Saturnushof 14, 3738 XG Maartensdijk, The Netherlands > At home: http://moene.org/~toon/ > Progress of GNU Fortran: http://gcc.gnu.org/gcc-4.5/changes.html#Fortran >