- User Since
- Feb 4 2021, 10:11 AM (79 w, 4 d)
It was very good to separate this out, thanks. Can you can do some TMP performance testing, to verify the impacts are negligible before taking resugaring into consideration, to allay potential concerns?
The second paragraph is talking about 'Canonical nodes', not 'Canonical types'.
A canonical node is a type node for which 'isSugared' method returns false.
Thu, Aug 11
This part of the description is confusing:
Wed, Aug 10
Mon, Aug 8
This corrects a genuine deficiency in the AST, and the patch LGTM. Can we knock this off Matheus' stack?
Feb 2 2022
Jan 31 2022
Jan 16 2022
Jan 15 2022
Looks good, thanks for fixing this!
Jan 7 2022
There are already two way more sophisticated (forgive me my bias) implementations in Clang that are for checking if two statements or decls are the same.
- ODRHash, used in modules to discover ODR violations
- ASTStructuralEquivalenceContext, used in ASTImporter to discover if two AST nodes are the same or not (as a side effect we diagnose ODR violations as well).
It is not the first time, when such a similarity check is needed (see https://reviews.llvm.org/D75041). Of course reusing the before mentioned components would require some architectural changes, but it might be beneficial.
Dec 21 2021
Dec 16 2021
throughUsingDecl seems like a good solution, though I defer to regular ASTMatchers users.
Nov 29 2021
A couple thoughts/cases to consider...
Looks great, thanks for identifying the need and banging this out so quickly.
Hope you had some time to enjoy the holiday with your family!
Nov 19 2021
Looks good, a few notes.
Jun 12 2021
Was this performance hit when using the static analyzer? A quick search suggests isAnyDestructorNoReturn() is only called within the analyzer, whereas comparable CXXRecordDecl methods whose results are stored (hasIrrelevantDestructor() etc.) seem to be called somewhere by Sema.
May 24 2021
Looks good, thanks for doing this!
May 22 2021
Sorry for the delay.
Richard should probably weigh in before absolutely committing to
- BaseUsingDecl/UsingEnumDecl/UsingDecl (as implemented here) vs. single UsingDecl (Nathan's original approach) and
- Renaming getUsingDecl() to getIntroducer() (if it is to return a BaseUsingDecl).