aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/Mangle.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-04-26 22:37:10 +0000
committerDouglas Gregor <dgregor@apple.com>2010-04-26 22:37:10 +0000
commit57fdc8a4382164955c7b30d09f4ce46fc7e67659 (patch)
tree1424bd02a4c985c9f5475e7301d4d3a147642332 /lib/CodeGen/Mangle.cpp
parentfcaa9e787037b22a6833d4562fed3105c5b55f71 (diff)
Improve source-location information in a C++ typeid (type) expression
by using TypeSourceInfo, cleaning up the representation somewhat. Teach getTypeOperand() to strip references and cv-qualifiers, providing the semantic view of the type without requiring any extra storage (the unmodified type remains within the TypeSourceInfo). This fixes a bug found by Boost's call_traits test. Finally, clean up semantic analysis, by splitting the ActOnCXXTypeid routine into ActOnCXXTypeId (the parser action) and two BuildCXXTypeId functions, which perform the semantic analysis for typeid(type) and typeid(expression), respectively. We now perform less work at template instantiation time (we don't look for std::type_info again) and can give better diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102393 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Mangle.cpp')
0 files changed, 0 insertions, 0 deletions