xazax.hun added a comment. I think I might have a theory, but I would like to discuss it as I am not familiar with the internals bindings.
My theory is the following: when we store the bindings, we store them in a map where the key is a base region. So when we try to look the bindings up with a non-base region, we will not get any bindings. So in our current case, we end up having a non-base region in the worklist of `InvalidateRegionsWorker`. `ClusterAnalysis::RunWorkList` will look up the cluster for the non-base region. Without a cluster found we will not visit the bindings. With not visiting the bindings, we will not invalidate the symbols. With no symbols to invalidate, the checkers will not get notified. I think the whole `ClusterAnalysis` is flawed at this point. Most of the code expects to only see base regions, but some code paths might end up adding non-base regions. So the question is, what should be the proper way to handle the `TK_DoNotInvalidateSuperRegion` trait? Maybe we should always look up the bindings using the base region. But if we do, should we actually visit all of the bindings? I did not have time yet to play with the possible solutions and will come back to this problem soon, just wanted to write down what I got so far. Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57230/new/ https://reviews.llvm.org/D57230 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits