[Lldb-commits] [PATCH] D71212: [lldb] Centralize type "desugaring" logic in ClangASTContext
Pavel Labath via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Dec 10 04:59:55 PST 2019
labath marked an inline comment as done.
labath added inline comments.
================
Comment at: lldb/source/Symbol/ClangASTContext.cpp:2489
+ case clang::Type::Typedef:
+ type = cast<clang::TypedefType>(type)->getDecl()->getUnderlyingType();
+ break;
----------------
teemperor wrote:
> QualType already has a `getDesugaredType` implementation that does the same (but handles more cases, so you still need the switch statement but you can unify all the case bodies if you want to keep this NFC).
Good idea. I should have checked clang for similar functionality. Though, the right function here seems to be `getLocallyUnqualifiedSingleStepDesugaredType`. "SingleStep" because we want to avoid desugaring all the way if the caller has asked us to stop at typedefs. And "LocallyUnqualified" because: a) that's what the current code does; b) the non-locally unqualified version requires a ClangASTContext, which is not available in all callers.
That said, I think that the `LocallyUnqualified` thing should be fixed as it's probably the cause of some subtle bugs.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71212/new/
https://reviews.llvm.org/D71212
More information about the lldb-commits
mailing list