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