ahatanak wrote: It looks like the root cause in `CheckForConstantInitializer` is that the per-element checks look at `Init` instead of `Culprit` (or an unwrapped version of it) when dispatching to `dyn_cast<ObjCArrayLiteral>` or `dyn_cast<ObjCDictionaryLiteral>`, so if `Init` is still wrapped, the per-element loop is skipped entirely. Also, the key check ignores that `ObjCStringLiteral` keys are wrapped in an implicit `BitCast` (`isa<ObjCStringLiteral>(Elm.Key)` checks the cast node, not the underlying literal), which is why a valid string key still gets misidentified as the culprit.
https://github.com/llvm/llvm-project/pull/209688 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
