aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CoverageMappingGen.cpp
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2024-05-10 08:34:42 +0200
committerGitHub <noreply@github.com>2024-05-10 08:34:42 +0200
commit5bde2aa1080ba90021f8f5e0c48744ddfc0d6f15 (patch)
treef83a498ee294d00ecafac355189b250cfb8a5d59 /clang/lib/CodeGen/CoverageMappingGen.cpp
parent0ebe48f068c0ca69f76ed68b621c9294acd75f76 (diff)
downloadllvm-5bde2aa1080ba90021f8f5e0c48744ddfc0d6f15.zip
llvm-5bde2aa1080ba90021f8f5e0c48744ddfc0d6f15.tar.gz
llvm-5bde2aa1080ba90021f8f5e0c48744ddfc0d6f15.tar.bz2
[lldb] Improve type name parsing (#91586)
Parsing of '::' scopes in TypeQuery was very naive and failed for names with '::''s in template arguments. Interestingly, one of the functions it was calling (Type::GetTypeScopeAndBasename) was already doing the same thing, and getting it (mostly (*)) right. This refactors the function so that it can return the scope results, fixing the parsing of names like std::vector<int, std::allocator<int>>::iterator. Two callers of GetTypeScopeAndBasename are deleted as the functions are not used (I presume they stopped being used once we started pruning type search results more eagerly). (*) This implementation is still not correct when one takes c++ operators into account -- e.g., something like `X<&A::operator<>::T` is a legitimate type name. We do have an implementation that is able to handle names like these (CPlusPlusLanguage::MethodName), but using it is not trivial, because it is hidden in a language plugin and specific to method name parsing. --------- Co-authored-by: Michael Buch <michaelbuch12@gmail.com>
Diffstat (limited to 'clang/lib/CodeGen/CoverageMappingGen.cpp')
0 files changed, 0 insertions, 0 deletions