diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2008-03-22 08:17:17 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2008-03-22 08:17:17 +0000 |
commit | 591858a403a71fc5b30bc7b071f18bc0cf327cfc (patch) | |
tree | 37394bfd555529c78f4c2885a8b9fe02a46fcb49 | |
parent | c73ede0a9beaee2e11d004f816a8207d9bd79072 (diff) | |
download | llvm-591858a403a71fc5b30bc7b071f18bc0cf327cfc.tar.gz llvm-591858a403a71fc5b30bc7b071f18bc0cf327cfc.tar.bz2 llvm-591858a403a71fc5b30bc7b071f18bc0cf327cfc.tar.xz |
Support chained aliases for LLVM IR printing. This fixes PR2145
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48684 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/VMCore/AsmWriter.cpp | 3 | ||||
-rw-r--r-- | test/Feature/aliases.ll | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index aba66c85a7..a2de5d99a0 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -1003,6 +1003,9 @@ void AssemblyWriter::printAlias(const GlobalAlias *GA) { Out << getLLVMName(F->getName(), GlobalPrefix); else Out << "@\"\""; + } else if (const GlobalAlias *GA = dyn_cast<GlobalAlias>(Aliasee)) { + printType(GA->getType()); + Out << " " << getLLVMName(GA->getName(), GlobalPrefix); } else { const ConstantExpr *CE = 0; if ((CE = dyn_cast<ConstantExpr>(Aliasee)) && diff --git a/test/Feature/aliases.ll b/test/Feature/aliases.ll index fc5e7685ca..d44dff4c43 100644 --- a/test/Feature/aliases.ll +++ b/test/Feature/aliases.ll @@ -5,11 +5,13 @@ @bar = external global i32 @foo1 = alias i32* @bar @foo2 = alias i32* @bar +@foo3 = alias i32* @foo2 %FunTy = type i32() declare i32 @foo_f() @bar_f = alias weak %FunTy* @foo_f +@bar_ff = alias i32()* @bar_f @bar_i = alias internal i32* @bar |