summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ItaniumMangle.cpp
diff options
context:
space:
mode:
authorAmy Huang <akhuang@google.com>2019-10-24 16:34:25 -0700
committerAmy Huang <akhuang@google.com>2019-12-18 10:41:12 -0800
commita85f5efd9597d0036f5c347b362cb873bdf51f16 (patch)
tree7f7d265febf1c6d8d113922c95c3c855722c3c24 /clang/lib/AST/ItaniumMangle.cpp
parenteb1857ce0da481caf82271e6d0c9fc745dfab26f (diff)
downloadbcm5719-llvm-a85f5efd9597d0036f5c347b362cb873bdf51f16.tar.gz
bcm5719-llvm-a85f5efd9597d0036f5c347b362cb873bdf51f16.zip
Add support for the MS qualifiers __ptr32, __ptr64, __sptr, __uptr.
Summary: This adds parsing of the qualifiers __ptr32, __ptr64, __sptr, and __uptr and lowers them to the corresponding address space pointer for 32-bit and 64-bit pointers. (32/64-bit pointers added in https://reviews.llvm.org/D69639) A large part of this patch is making these pointers ignore the address space when doing things like overloading and casting. https://bugs.llvm.org/show_bug.cgi?id=42359 Reviewers: rnk, rsmith Subscribers: jholewinski, jvesely, nhaehnle, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71039
Diffstat (limited to 'clang/lib/AST/ItaniumMangle.cpp')
-rw-r--r--clang/lib/AST/ItaniumMangle.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 8c87c55c792..0d567edac52 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -2301,6 +2301,16 @@ void CXXNameMangler::mangleQualifiers(Qualifiers Quals, const DependentAddressSp
case LangAS::cuda_device: ASString = "CUdevice"; break;
case LangAS::cuda_constant: ASString = "CUconstant"; break;
case LangAS::cuda_shared: ASString = "CUshared"; break;
+ // <ptrsize-addrspace> ::= [ "ptr32_sptr" | "ptr32_uptr" | "ptr64" ]
+ case LangAS::ptr32_sptr:
+ ASString = "ptr32_sptr";
+ break;
+ case LangAS::ptr32_uptr:
+ ASString = "ptr32_uptr";
+ break;
+ case LangAS::ptr64:
+ ASString = "ptr64";
+ break;
}
}
if (!ASString.empty())
OpenPOWER on IntegriCloud