lto1: internal compiler error: in lto_symtab_merge_decls_1, at lto-symtab.c:549

Toon Moene toon@moene.org
Sun Apr 25 11:28:00 GMT 2010


Richard Guenther wrote:

> On Sat, Apr 24, 2010 at 3:28 PM, Toon Moene <toon@moene.org> wrote:

>> 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?

Indeed, I do (all of our code ends up in libraries - .a files - so I 
have to, to make -flto -fwhole-program be meaningful).

Is it a problem with COMMON ?  Those typically have umpteen definitions, 
which all have to match ...

Thanks in advance,

-- 
Toon Moene - e-mail: toon@moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.org/~toon/; weather: http://moene.org/~hirlam/
Progress of GNU Fortran: http://gcc.gnu.org/gcc-4.5/changes.html#Fortran



More information about the Gcc mailing list