diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-28 03:20:10 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-28 03:20:10 +0000 |
commit | 1ffb5336999b327384752b0f60ad0c4cb4cb8946 (patch) | |
tree | 6e56e4ae99ee6f4e4fe6c3749366386cd1e7445c | |
parent | 4c4c7329603491838d9c089dfbce19915c1431ea (diff) | |
download | llvm-1ffb5336999b327384752b0f60ad0c4cb4cb8946.tar.gz llvm-1ffb5336999b327384752b0f60ad0c4cb4cb8946.tar.bz2 llvm-1ffb5336999b327384752b0f60ad0c4cb4cb8946.tar.xz |
Print the visibility of declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124468 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 15 | ||||
-rw-r--r-- | test/CodeGen/X86/visibility.ll | 11 |
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 7f2b18c6e6..4528a34286 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -753,7 +753,20 @@ bool AsmPrinter::doFinalization(Module &M) { for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) EmitGlobalVariable(I); - + + // Emit visibility info for declarations + for (Module::const_iterator I = M.begin(), E = M.end(); I != E; ++I) { + const Function &F = *I; + if (!F.isDeclaration()) + continue; + GlobalValue::VisibilityTypes V = F.getVisibility(); + if (V == GlobalValue::DefaultVisibility) + continue; + + MCSymbol *Name = Mang->getSymbol(&F); + EmitVisibility(Name, V); + } + // Finalize debug and EH information. if (DE) { { diff --git a/test/CodeGen/X86/visibility.ll b/test/CodeGen/X86/visibility.ll new file mode 100644 index 0000000000..9153de4618 --- /dev/null +++ b/test/CodeGen/X86/visibility.ll @@ -0,0 +1,11 @@ +; RUN: llc %s -o - | FileCheck %s + +define hidden void @foo() nounwind { +entry: + call void @bar() + ret void +} + +declare hidden void @bar() + +;CHECK: .hidden bar |