On November 7, 2018 7:47:43 PM GMT+01:00, Rainer Orth 
<r...@cebitec.uni-bielefeld.de> wrote:
>Hi Richard,
>
>> This adds a workaround for LTO decl merging prevailing a
>> non-ultimate origin decl, breaking invariants of the middle-end.
>> In the future (GCC 10) I hope to have DIE references here so
>> this will not be an issue there anymore.
>>
>> Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
>>
>> Richard.
>>
>> From ff035da8314ea8e0889b99bb338e67dd5dae455b Mon Sep 17 00:00:00
>2001
>> From: Richard Guenther <rguent...@suse.de>
>> Date: Wed, 7 Nov 2018 08:56:52 +0100
>> Subject: [PATCH] fix-pr87906
>>
>> 2018-11-07  Richard Biener  <rguent...@suse.de>
>>
>>      PR lto/87906
>>      * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Fixup
>>      BLOCK_ABSTRACT_ORIGIN to be the ultimate origin.
>>
>>      * g++.dg/lto/pr87906_0.C: New testcase.
>>      * g++.dg/lto/pr87906_1.C: Likewise.
>>
>> diff --git a/gcc/testsuite/g++.dg/lto/pr87906_0.C
>b/gcc/testsuite/g++.dg/lto/pr87906_0.C
>> new file mode 100644
>> index 00000000000..08e7ed3ba07
>> --- /dev/null
>> +++ b/gcc/testsuite/g++.dg/lto/pr87906_0.C
>> @@ -0,0 +1,35 @@
>> +// { dg-lto-do link }
>> +// { dg-lto-options { { -O -fPIC -flto } } }
>> +// { dg-extra-ld-options "-shared -nostdlib" }
>> +
>> +namespace com {
>> +namespace sun {
>> +namespace star {}
>> +} // namespace sun
>> +} // namespace com
>> +namespace a = com::sun::star;
>> +namespace com {
>> +namespace sun {
>> +namespace star {
>> +namespace uno {
>
>the new testcase FAILs on Solaris:
>
>+FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o assemble,  -O -fPIC -flto 
>+UNRESOLVED: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o
>execute  -O -fPIC -flto 
>+UNRESOLVED: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o
>link  -O -fPIC -flto 
>+FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_1.o assemble,  -O -fPIC -flto 
>
>/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/lto/pr87906_0.C:6:11:
>error: expected identifier before numeric constant
>/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/lto/pr87906_0.C:6:11:
>error: expected unqualified-id before numeric constant
>
>and several more due to the -Dsun default.  How about
>sed -e 's/sun/moon/g' instead ;-)

Argh. Works for me. 

Richard. 

>       Rainer

Reply via email to