forked from OSchip/llvm-project
Add name mangling for address spaces. We use the vendor-extension
mangling for types, where the <source-name> is ASxxx (xxx is the address-space number). llvm-svn: 105975
This commit is contained in:
parent
c8c2efa7f7
commit
1726d1517e
|
@ -1050,6 +1050,18 @@ void CXXNameMangler::mangleQualifiers(Qualifiers Quals) {
|
||||||
if (Quals.hasConst())
|
if (Quals.hasConst())
|
||||||
Out << 'K';
|
Out << 'K';
|
||||||
|
|
||||||
|
if (Quals.hasAddressSpace()) {
|
||||||
|
// Extension:
|
||||||
|
//
|
||||||
|
// <type> ::= U <address-space-number>
|
||||||
|
//
|
||||||
|
// where <address-space-number> is a source name consisting of 'AS'
|
||||||
|
// followed by the address space <number>.
|
||||||
|
llvm::SmallString<64> ASString;
|
||||||
|
ASString = "AS" + llvm::utostr_32(Quals.getAddressSpace());
|
||||||
|
Out << 'U' << ASString.size() << ASString;
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: For now, just drop all extension qualifiers on the floor.
|
// FIXME: For now, just drop all extension qualifiers on the floor.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
|
||||||
|
|
||||||
|
// CHECK: define void @_Z2f0Pc
|
||||||
|
void f0(char *p) { }
|
||||||
|
// CHECK: define void @_Z2f0PU3AS1c
|
||||||
|
void f0(char __attribute__((address_space(1))) *p) { }
|
Loading…
Reference in New Issue