aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests
diff options
context:
space:
mode:
authorPrabhu Rajasekaran <prabhukr@google.com>2025-04-30 12:14:58 -0700
committerGitHub <noreply@github.com>2025-04-30 12:14:58 -0700
commit1531dfcb3a953b7b3187bca7e58e4e18def58d7d (patch)
tree5cbebe361b163ce4c1786014a0004d0832057a16 /llvm/unittests
parentea0e6e33835fe9fada89f77cc3a6cd74eb690067 (diff)
downloadllvm-1531dfcb3a953b7b3187bca7e58e4e18def58d7d.zip
llvm-1531dfcb3a953b7b3187bca7e58e4e18def58d7d.tar.gz
llvm-1531dfcb3a953b7b3187bca7e58e4e18def58d7d.tar.bz2
[llvm] Linker flags for UEFI (#137878)
Use appropriate linker flag format to match PE spec for UEFI.
Diffstat (limited to 'llvm/unittests')
-rw-r--r--llvm/unittests/IR/ManglerTest.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/unittests/IR/ManglerTest.cpp b/llvm/unittests/IR/ManglerTest.cpp
index a2b4e81..bced6ff 100644
--- a/llvm/unittests/IR/ManglerTest.cpp
+++ b/llvm/unittests/IR/ManglerTest.cpp
@@ -134,6 +134,27 @@ TEST(ManglerTest, WindowsX64) {
"?vectorcall");
}
+TEST(ManglerTest, UEFIX64) {
+ LLVMContext Ctx;
+ DataLayout DL("e-m:w-p270:32:32-p271:32:32-p272:64:64-"
+ "i64:64-i128:128-f80:128-n8:16:32:64-S128"); // uefi X86_64
+ Module Mod("test", Ctx);
+ Mod.setDataLayout(DL);
+ Mangler Mang;
+ EXPECT_EQ(mangleStr("foo", Mang, DL), "foo");
+ EXPECT_EQ(mangleStr("\01foo", Mang, DL), "foo");
+ EXPECT_EQ(mangleStr("?foo", Mang, DL), "?foo");
+ EXPECT_EQ(mangleFunc("foo", llvm::GlobalValue::ExternalLinkage,
+ llvm::CallingConv::C, Mod, Mang),
+ "foo");
+ EXPECT_EQ(mangleFunc("?foo", llvm::GlobalValue::ExternalLinkage,
+ llvm::CallingConv::C, Mod, Mang),
+ "?foo");
+ EXPECT_EQ(mangleFunc("foo", llvm::GlobalValue::PrivateLinkage,
+ llvm::CallingConv::C, Mod, Mang),
+ ".Lfoo");
+}
+
TEST(ManglerTest, XCOFF) {
LLVMContext Ctx;
DataLayout DL("m:a"); // XCOFF/AIX