Due to incorrect calculation false positive diagnostics were emitted.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/lib/AST/ComputeDependence.cpp | ||
---|---|---|
625 | While implementing this patch I was following Richard's guide from https://github.com/llvm/llvm-project/issues/48731#issuecomment-1529150797 . The problem is, I didn't manage to write a test that would fail due to clang not taking into account NameInfo dependence. Turns out in most cases where it can be dependent either Base itself is dependent or CXXPseudoDestructorExpr/CXXDependentScopeMemberExpr is created inside the template function. |
clang/lib/AST/Expr.cpp | ||
---|---|---|
1774 | Maybe we should do that now, by passing TemplateArgs to computeDependence? Otherwise there is a good chance that fixme never gets fixed ! |
clang/lib/AST/Expr.cpp | ||
---|---|---|
1774 | computeDependence is called by the constructor of MemberExpr which doesn't accept template augments. In order to do that, I would need to modify the constructor of MemberExpr. |
clang/lib/AST/Expr.cpp | ||
---|---|---|
1774 | Oh, i missed that the fixme is pre-existing, NVM then, i think you can leave it as-is. Sorry! |
I think this makes sense and it implements richard's suggestion.
However, it's missing a release note, can you add that before landing?
Thanks
Thank you for the review.
I think I added a release note here - https://reviews.llvm.org/D154689#change-RNUd6wICb9iD . Is something else needed?
While implementing this patch I was following Richard's guide from https://github.com/llvm/llvm-project/issues/48731#issuecomment-1529150797 . The problem is, I didn't manage to write a test that would fail due to clang not taking into account NameInfo dependence. Turns out in most cases where it can be dependent either Base itself is dependent or CXXPseudoDestructorExpr/CXXDependentScopeMemberExpr is created inside the template function.