aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-09-23 00:13:02 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-09-23 00:13:02 +0000
commit7666c7e4d26aadda01e49d04c81b3ca047f74142 (patch)
tree9cadff3a023ae679e1637529915aef5b7c035209
parenta6176adc8aad5d37268f40e49ae58c0eae2323c2 (diff)
downloadexternal_llvm-7666c7e4d26aadda01e49d04c81b3ca047f74142.zip
external_llvm-7666c7e4d26aadda01e49d04c81b3ca047f74142.tar.gz
external_llvm-7666c7e4d26aadda01e49d04c81b3ca047f74142.tar.bz2
PR10989: Don't print .hidden on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140356 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/MC/MCAsmInfoCOFF.cpp3
-rw-r--r--test/CodeGen/X86/hidden-vis.ll19
2 files changed, 15 insertions, 7 deletions
diff --git a/lib/MC/MCAsmInfoCOFF.cpp b/lib/MC/MCAsmInfoCOFF.cpp
index cf6026b..365ddc4 100644
--- a/lib/MC/MCAsmInfoCOFF.cpp
+++ b/lib/MC/MCAsmInfoCOFF.cpp
@@ -27,7 +27,8 @@ MCAsmInfoCOFF::MCAsmInfoCOFF() {
LinkOnceDirective = "\t.linkonce discard\n";
// Doesn't support visibility:
- HiddenVisibilityAttr = ProtectedVisibilityAttr = MCSA_Invalid;
+ HiddenVisibilityAttr = HiddenDeclarationVisibilityAttr = MCSA_Invalid;
+ ProtectedVisibilityAttr = MCSA_Invalid;
// Set up DWARF directives
HasLEB128 = true; // Target asm supports leb128 directives (little-endian)
diff --git a/test/CodeGen/X86/hidden-vis.ll b/test/CodeGen/X86/hidden-vis.ll
index a948bdf..fcb74fc 100644
--- a/test/CodeGen/X86/hidden-vis.ll
+++ b/test/CodeGen/X86/hidden-vis.ll
@@ -1,8 +1,11 @@
; RUN: llc < %s -mtriple=i686-pc-linux-gnu | FileCheck %s -check-prefix=LINUX
; RUN: llc < %s -mtriple=i686-apple-darwin8 | FileCheck %s -check-prefix=DARWIN
+; RUN: llc < %s -mtriple=x86_64-w64-mingw32 | FileCheck %s -check-prefix=WINDOWS
+
@a = hidden global i32 0
-@b = external global i32
+@b = external hidden global i32
+@c = global i32* @b
define weak hidden void @t1() nounwind {
; LINUX: .hidden t1
@@ -10,15 +13,19 @@ define weak hidden void @t1() nounwind {
; DARWIN: .private_extern _t1
; DARWIN: t1:
+
+; WINDOWS: t1:
+; WINDOWS-NOT: hidden
ret void
}
define weak void @t2() nounwind {
-; LINUX: t2:
-; LINUX: .hidden a
-
-; DARWIN: t2:
-; DARWIN: .private_extern _a
+; DARWIN: .weak_definition _t2
ret void
}
+; LINUX: .hidden a
+; LINUX: .hidden b
+
+; DARWIN: .private_extern _a
+; DARWIN-NOT: private_extern