summaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorAyke van Laethem <aykevanlaethem@gmail.com>2020-03-14 18:52:01 +0100
committerAyke van Laethem <aykevanlaethem@gmail.com>2020-04-14 00:42:19 +0200
commitcfc002714a208bdbc51fade56141a38fbba26e24 (patch)
tree882e6262d65f2b14ef1091db66168f50f81a03cf /clang/lib/CodeGen/CodeGenModule.cpp
parent5f7a0301628671b8f4d2c1d9ea90ee723d889a56 (diff)
[AVR] Support aliases in non-zero address space
This fixes code like the following on AVR: void foo(void) { } void bar(void) __attribute__((alias("foo"))); Code like this is present in compiler-rt, which I'm trying to build. Differential Revision: https://reviews.llvm.org/D76182
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 8b7d52b88146..0f56dcb3e26c 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -4536,8 +4536,9 @@ void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) {
}
// Create the new alias itself, but don't set a name yet.
+ unsigned AS = Aliasee->getType()->getPointerAddressSpace();
auto *GA =
- llvm::GlobalAlias::create(DeclTy, 0, LT, "", Aliasee, &getModule());
+ llvm::GlobalAlias::create(DeclTy, AS, LT, "", Aliasee, &getModule());
if (Entry) {
if (GA->getAliasee() == Entry) {