rnk added inline comments.
================ Comment at: clang/lib/Sema/SemaType.cpp:7116 + for (;;) { + if (const TypedefType *TT = dyn_cast<TypedefType>(Desugared)) { + Desugared = TT->desugar(); ---------------- Ariel-Burton wrote: > rnk wrote: > > This seems like a good place to use getSingleStepDesugaredType to look > > through all type sugar (parens, typedefs, template substitutions, etc). > > This seems like a good place to use getSingleStepDesugaredType to look > > through all type sugar (parens, typedefs, template substitutions, etc). > > I'm not sure what you mean. Could you expand a little, please? Clang's AST has lots of "type sugar nodes". These are types which usually don't have any semantic meaning, they just carry source location information, like whether there was a typedef or extra parens in the type. AttributedType is also a type sugar node, so we cannot do a full desugaring here, we have to step through each node one at a time to accumulate the attributes. Your code looks through one kind of type sugar, but this loop should probably be generalized to handle all kinds of type sugar. I think getSingleStepDesugaredType will do that. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D130123/new/ https://reviews.llvm.org/D130123 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits