Hi Jakub,

> The following testcase is miscompiled on x86_64-linux (-m32 and -m64) at
> -O1, as a pointer has two vars in points-to set, the first one is escaped
> heap var and the second one is escaped non-heap var, and in the end the last
> var that sets vars_contains_escaped won and overwrote
> vars_contains_escaped_heap rather than oring into it.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux,
> preapproved by Richard on IRC, committed to trunk.
> Will test 8.x backport tonight and commit to 8.3 if that succeeds.
>
> 2019-02-13  Jakub Jelinek  <ja...@redhat.com>
>
>       PR middle-end/89303
>       * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
>       into pt->vars_contains_escaped_heap instead of setting
>       pt->vars_contains_escaped_heap to it.
>
> 2019-02-13  Jonathan Wakely  <jwak...@redhat.com>
>           Jakub Jelinek  <ja...@redhat.com>
>
>       PR middle-end/89303
>       * g++.dg/torture/pr89303.C: New test.

the new testcase FAILs on Solaris:

+FAIL: g++.dg/torture/pr89303.C   -O0  (test for excess errors)
+FAIL: g++.dg/torture/pr89303.C   -O1  (test for excess errors)
+FAIL: g++.dg/torture/pr89303.C   -O2  (test for excess errors)
+FAIL: g++.dg/torture/pr89303.C   -O2 -flto  (test for excess errors)
+FAIL: g++.dg/torture/pr89303.C   -O2 -flto -flto-partition=none  (test for 
excess errors)
+FAIL: g++.dg/torture/pr89303.C   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  (test for excess errors)
+FAIL: g++.dg/torture/pr89303.C   -O3 -g  (test for excess errors)
+FAIL: g++.dg/torture/pr89303.C   -Os  (test for excess errors)

Excess errors:
ld: warning: symbol 'typeinfo for std::bad_weak_ptr' has differing sizes:
        (file /var/tmp//ccB1o8Ya.o value=0x8; file 
/var/gcc/regression/trunk/11-gcc/build/i386-pc-solaris2.11/./libstdc++-v3/src/.libs/libstdc++.so
 value=0xc);
        /var/tmp//ccB1o8Ya.o definition taken

I suspect the class can just be renamed in pr89303.C to avoid the
conflict with include/bits/shared_ptr_base.h?

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to