https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82929
Bug ID: 82929 Summary: [8 regression] r254579 causes ICE: tree check: expected ssa_name, have array_ref in has_single_use, at ssa-iterators.h:400 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Since r254579: trippels@gcc2-power8 llvm_build % cat SubtargetFeature.ii template <int _Nw> struct A { long _M_w[_Nw]; void m_fn1(A p1) { for (int a = 0;; a++) _M_w[a] &= p1._M_w[a]; } void m_fn2() { for (int b = 0; b < _Nw; b++) _M_w[b] = ~_M_w[b]; } }; template <int _Nb> struct C : A<_Nb / (8 * 8)> { void operator&=(C p1) { this->m_fn1(p1); } C m_fn3() { this->m_fn2(); return *this; } C operator~() { return C(*this).m_fn3(); } }; struct B { C<192> Value; }; void fn1(C<192> &p1) { B c; p1 &= ~c.Value; } trippels@gcc2-power8 llvm_build % g++ -O2 -c SubtargetFeature.ii during GIMPLE pass: store-merging SubtargetFeature.ii: In function ‘void fn1(C<192>&)’: SubtargetFeature.ii:23:6: internal compiler error: tree check: expected ssa_name, have mem_ref in has_single_use, at ssa-iterators.h:400 void fn1(C<192> &p1) { ^~~ 0x1019870b tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/gcc/tree.c:9096 0x101ba5a3 tree_check(tree_node const*, char const*, int, char const*, tree_code) ../../gcc/gcc/tree.h:3344 0x101ba5a3 has_single_use ../../gcc/gcc/ssa-iterators.h:400 0x1151ff1b has_single_use ../../gcc/gcc/gimple-ssa-store-merging.c:1445 0x1151ff1b count_multiple_uses ../../gcc/gcc/gimple-ssa-store-merging.c:1435 0x1152011f split_group ../../gcc/gcc/gimple-ssa-store-merging.c:1509 0x11520ac7 output_merged_store ../../gcc/gcc/gimple-ssa-store-merging.c:1719 0x11523707 output_merged_stores ../../gcc/gcc/gimple-ssa-store-merging.c:2055 0x11523707 terminate_and_process_chain ../../gcc/gcc/gimple-ssa-store-merging.c:2093 0x11523707 terminate_and_release_chain ../../gcc/gcc/gimple-ssa-store-merging.c:991 0x11523f47 terminate_and_process_all_chains ../../gcc/gcc/gimple-ssa-store-merging.c:928 0x1152451f execute ../../gcc/gcc/gimple-ssa-store-merging.c:2504