Tedlion accepted this revision. Tedlion added a comment. I argee that the different CSA behavior between C and C++ should be checked.
In D146194#4199257 <https://reviews.llvm.org/D146194#4199257>, @steakhal wrote: > As per your proposed change, I think we should do something like this: > > for (const auto *I : RD->fields()) { > if (I->isUnnamedBitfield()) > continue; > > instead of embedding this into some condition. Note in the begin and end of the for loop body, there is a push_back and pop_back action to FieldChain, that's why I have to emembed the new condition into the old. (OK now I know large diff context is necessary.) ... for (const auto *I : RD->fields()) { const FieldRegion *FR = MrMgr.getFieldRegion(I, R); FieldChain.push_back(I); T = I->getType(); if (T->getAsStructureType()) { if (Find(FR)) return true; } else { const SVal &V = StoreMgr.getBinding(store, loc::MemRegionVal(FR)); if (V.isUndef()) return true; } FieldChain.pop_back(); } ... Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146194/new/ https://reviews.llvm.org/D146194 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits