https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91006
Bug ID: 91006 Summary: [10 Regression] Several test suite fails on *darwin* after r272618 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: iains at gcc dot gnu.org Target Milestone: --- After r272618, the following tests fail for i686,x86-64-*darwin*. flifetime-dse2.C (m32, m64) Warray-bounds-4.C (m32, m64) ivopts-3.C (m64). The problem is occurring it seems quite early in the middle end (already complete before we get to RTL expansion) Th problem also manifests on a stage1 FE, so it ought to be possible to investigate on a cross. ===== I did some comparisions of the IL for flifetime-dse2.C between before/after and against a linux version. Up to flifetime-dse2.C.021t.nothrow the IL looks similar for all three cases ... At flifetime-dse2.C.023t.fixup_cfg2 there is a divergence: (OK): main () { struct A * ap; int ar[1]; int _1; int _2; void * _6; int _12; <bb 2> : ar[0] = 42; _6 = _ZnwmPv.isra.0 (&ar); A::A (_6); ap_8 = _6; _1 = ap_8->i; if (_1 == 42) goto <bb 3>; [INV] else goto <bb 4>; [INV] <bb 3> : __builtin_abort (); <bb 4> : ap_8->i = 42; A::~A (ap_8); _2 = ar[0]; if (_2 == 42) goto <bb 5>; [INV] else goto <bb 6>; [INV] <bb 5> : __builtin_abort (); <bb 6> : ar ={v} {CLOBBER}; _12 = 0; return _12; } (Bad): ;; Function main (main, funcdef_no=7, decl_uid=2353, cgraph_uid=8, symbol_order=7) main () { struct A * ap; int ar[1]; int _1; int _2; void * _6; int _12; <bb 2> : ar[0] = 42; _6 = _ZnwmPv.isra.0 (&ar); A::_ZN1AC1Ev.isra.0 (); ap_8 = _6; _1 = ap_8->i; if (_1 == 42) goto <bb 3>; [INV] else goto <bb 4>; [INV] <bb 3> : __builtin_abort (); <bb 4> : ap_8->i = 42; A::_ZN1AD1Ev.isra.0 (); _2 = ar[0]; if (_2 == 42) goto <bb 5>; [INV] else goto <bb 6>; [INV] <bb 5> : __builtin_abort (); <bb 6> : ar ={v} {CLOBBER}; _12 = 0; return _12; } I can attach the tree dumps / or more comparisons etc. as needed.