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 <[email protected]>
>
> 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 <[email protected]>
> Jakub Jelinek <[email protected]>
>
> 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