diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-13 01:30:30 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-13 01:30:30 +0000 |
commit | 026d152e58b7c78499e8e2e8a0149d5d971a7201 (patch) | |
tree | 7a6c6b08799d9a4f1c2261aed3bdae75683c21a0 /llvm/unittests/VMCore/VerifierTest.cpp | |
parent | 87ff1acc0c97bcb075f64a8f3bcafb2287875245 (diff) | |
download | bcm5719-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.cpp | 26 |
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")); +} } } |