summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/MicrosoftMangle.cpp
diff options
context:
space:
mode:
authorAndrew Gozillon <andrew.gozillon@uws.ac.uk>2017-10-02 06:25:51 +0000
committerAndrew Gozillon <andrew.gozillon@uws.ac.uk>2017-10-02 06:25:51 +0000
commit572bbb075483b07084526bc30b180b743257ca5a (patch)
tree70b646fde30a35410f4ef93059e28b7725c2b078 /clang/lib/AST/MicrosoftMangle.cpp
parentd37625859a6a663c33390e6a15ad5eca46579bc3 (diff)
downloadbcm5719-llvm-572bbb075483b07084526bc30b180b743257ca5a.tar.gz
bcm5719-llvm-572bbb075483b07084526bc30b180b743257ca5a.zip
Dependent Address Space Support
This patch relates to: https://reviews.llvm.org/D33666 This adds support for template parameters to be passed to the address_space attribute. The main goal is to add further flexibility to the attribute and allow for it to be used easily with templates. The main additions are a new type (DependentAddressSpaceType) alongside its TypeLoc and its mangling. As well as the logic required to support dependent address spaces which mainly resides in TreeTransform.h and SemaType.cpp. llvm-svn: 314649
Diffstat (limited to 'clang/lib/AST/MicrosoftMangle.cpp')
-rw-r--r--clang/lib/AST/MicrosoftMangle.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp
index 685dc62296f..c8048544ab8 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -2430,6 +2430,15 @@ void MicrosoftCXXNameMangler::mangleType(const DependentSizedExtVectorType *T,
<< Range;
}
+void MicrosoftCXXNameMangler::mangleType(const DependentAddressSpaceType *T,
+ Qualifiers, SourceRange Range) {
+ DiagnosticsEngine &Diags = Context.getDiags();
+ unsigned DiagID = Diags.getCustomDiagID(
+ DiagnosticsEngine::Error,
+ "cannot mangle this dependent address space type yet");
+ Diags.Report(Range.getBegin(), DiagID) << Range;
+}
+
void MicrosoftCXXNameMangler::mangleType(const ObjCInterfaceType *T, Qualifiers,
SourceRange) {
// ObjC interfaces have structs underlying them.
OpenPOWER on IntegriCloud