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
>

Reply via email to