diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp index f6bc4b9db0d0..4bcfb1a9dbba 100644 --- a/llvm/lib/VMCore/Verifier.cpp +++ b/llvm/lib/VMCore/Verifier.cpp @@ -378,10 +378,10 @@ void Verifier::visitGlobalAlias(GlobalAlias &GA) { &GA); } + const GlobalValue* Aliasee = GA.resolveAliasedGlobal(); const GlobalValue* Aliasee = GA.resolveAliasedGlobal(); Assert1(Aliasee, - "Aliasing chain should end with global function or global variable", - &GA); + "Aliasing chain should end with function or global variable", &GA); visitGlobalValue(GA); } diff --git a/llvm/test/Verifier/aliasing-chain.ll b/llvm/test/Verifier/aliasing-chain.ll new file mode 100644 index 000000000000..53b929bd782e --- /dev/null +++ b/llvm/test/Verifier/aliasing-chain.ll @@ -0,0 +1,6 @@ +; RUN: not llvm-as -f %s -o /dev/null |& grep {Aliasing chain should end with function or global variable} + +; Test that alising chain does not create a cycle + +@b1 = alias i32* @c1 +@c1 = alias i32* @b1