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())
|
||||
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.
|
||||
}
|
||||
|
||||
|
|
|
@ -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