[PATCH] D138681: [AVR] Fix broken bitcast for aliases in non-zero address space
Ayke via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Nov 27 06:31:34 PST 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG131cddcba2c4: [AVR] Fix broken bitcast for aliases in non-zero address space (authored by aykevl).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138681/new/
https://reviews.llvm.org/D138681
Files:
clang/lib/CodeGen/CodeGenModule.cpp
clang/test/CodeGen/avr/alias-avr.c
Index: clang/test/CodeGen/avr/alias-avr.c
===================================================================
--- clang/test/CodeGen/avr/alias-avr.c
+++ clang/test/CodeGen/avr/alias-avr.c
@@ -6,3 +6,8 @@
// CHECK: @multiply ={{.*}} alias i16 (i16, i16), ptr addrspace(1) @mul
int multiply(int x, int y) __attribute__((alias("mul")));
+
+// Make sure the correct address space is used when creating an alias that needs
+// a pointer cast.
+// CHECK: @smallmul = alias i8 (i16, i16), ptr addrspace(1) @mul
+char smallmul(int a, int b) __attribute__((alias("mul")));
Index: clang/lib/CodeGen/CodeGenModule.cpp
===================================================================
--- clang/lib/CodeGen/CodeGenModule.cpp
+++ clang/lib/CodeGen/CodeGenModule.cpp
@@ -4002,7 +4002,8 @@
// (If function is requested for a definition, we always need to create a new
// function, not just return a bitcast.)
if (!IsForDefinition)
- return llvm::ConstantExpr::getBitCast(Entry, Ty->getPointerTo());
+ return llvm::ConstantExpr::getBitCast(
+ Entry, Ty->getPointerTo(Entry->getAddressSpace()));
}
// This function doesn't have a complete type (for example, the return
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138681.478092.patch
Type: text/x-patch
Size: 1200 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221127/bb06d90f/attachment-0001.bin>
More information about the cfe-commits
mailing list