https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83084
Bug ID: 83084 Summary: [7/8 Regression] -fcompare-debug failure on ppc64le Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org CC: segher at gcc dot gnu.org Target Milestone: --- On ppc64le: trippels@gcc2-power8 out % cat v8-stack-trace-impl.ii enum _Lock_policy { _S_atomic }; template <_Lock_policy = _S_atomic> struct A { bool m_fn1(); int _M_use_count; }; template <> bool A<>::m_fn1() { int a; do if (a) return 0; while (__atomic_compare_exchange_n(&_M_use_count, &a, 0, 1, 4, 0)); } trippels@gcc2-power8 out % g++ --save-temps -fcompare-debug -O2 -c v8-stack-trace-impl.ii g++: error: v8-stack-trace-impl.ii: -fcompare-debug failure trippels@gcc2-power8 out % diff -u v8-stack-trace-impl.gkd v8-stack-trace-impl.gk.gkd --- v8-stack-trace-impl.gkd 2017-11-21 06:00:22.288381883 +0000 +++ v8-stack-trace-impl.gk.gkd 2017-11-21 06:00:22.308382369 +0000 @@ -69,16 +69,16 @@ -> 10) (code_label # 0 0 8 (nil) [1 uses]) (note # 0 0 [bb 5] NOTE_INSN_BASIC_BLOCK) -(insn:TI # 0 0 (set (mem/v:BLK (scratch:DI) [ A8]) - (unspec:BLK [ - (mem/v:BLK (scratch:DI) [ A8]) - ] UNSPEC_LWSYNC)) "v8-stack-trace-impl.ii":11# {*lwsync} - (nil)) (insn:TI # 0 0 (set (reg:SI 10 10 [138]) (unspec_volatile:SI [ (mem/v:SI (reg/f:DI 3 3 [orig:131 this ] [131]) [ S4 A32]) ] UNSPECV_LL)) "v8-stack-trace-impl.ii":11# {load_lockedsi} (nil)) +(insn:TI # 0 0 (set (mem/v:BLK (scratch:DI) [ A8]) + (unspec:BLK [ + (mem/v:BLK (scratch:DI) [ A8]) + ] UNSPEC_LWSYNC)) "v8-stack-trace-impl.ii":11# {*lwsync} + (nil)) (insn:TI # 0 0 (set (reg:CC 68 0 [141]) (compare:CC (reg:SI 10 10 [138]) (const_int 0 [0]))) "v8-stack-trace-impl.ii":11# {*cmpsi_signed}