summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/VMCore/VerifierTest.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-01-13 01:30:30 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-01-13 01:30:30 +0000
commit026d152e58b7c78499e8e2e8a0149d5d971a7201 (patch)
tree7a6c6b08799d9a4f1c2261aed3bdae75683c21a0 /llvm/unittests/VMCore/VerifierTest.cpp
parent87ff1acc0c97bcb075f64a8f3bcafb2287875245 (diff)
downloadbcm5719-llvm-026d152e58b7c78499e8e2e8a0149d5d971a7201.tar.gz
bcm5719-llvm-026d152e58b7c78499e8e2e8a0149d5d971a7201.zip
Reject uses of unnamed_addr in declarations.
llvm-svn: 123358
Diffstat (limited to 'llvm/unittests/VMCore/VerifierTest.cpp')
-rw-r--r--llvm/unittests/VMCore/VerifierTest.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/unittests/VMCore/VerifierTest.cpp b/llvm/unittests/VMCore/VerifierTest.cpp
index 55ce1444ed0..d94dc22306e 100644
--- a/llvm/unittests/VMCore/VerifierTest.cpp
+++ b/llvm/unittests/VMCore/VerifierTest.cpp
@@ -61,5 +61,31 @@ TEST(VerifierTest, AliasUnnamedAddr) {
EXPECT_TRUE(StringRef(Error).startswith("Alias cannot have unnamed_addr"));
}
+TEST(VerifierTest, ExternalUnnamedAddr) {
+ LLVMContext &C = getGlobalContext();
+ Module M("M", C);
+ const Type *Ty = Type::getInt8Ty(C);
+ GlobalVariable *GV = new GlobalVariable(M, Ty, true,
+ GlobalValue::ExternalLinkage,
+ NULL, "foo");
+ GV->setUnnamedAddr(true);
+ std::string Error;
+ EXPECT_TRUE(verifyModule(M, ReturnStatusAction, &Error));
+ EXPECT_TRUE(StringRef(Error)
+ .startswith("only definitions can have unnamed_addr"));
+}
+
+TEST(VerifierTest, DeclarationUnnamedAddr) {
+ LLVMContext &C = getGlobalContext();
+ Module M("M", C);
+ FunctionType *FTy = FunctionType::get(Type::getVoidTy(C), /*isVarArg=*/false);
+ Function *F = Function::Create(FTy, GlobalValue::ExternalLinkage,
+ "foo", &M);
+ F->setUnnamedAddr(true);
+ std::string Error;
+ EXPECT_TRUE(verifyModule(M, ReturnStatusAction, &Error));
+ EXPECT_TRUE(StringRef(Error)
+ .startswith("only definitions can have unnamed_addr"));
+}
}
}
OpenPOWER on IntegriCloud