GlobalValue: Testcase for hidden visibility and local linkage

This is a testcase for r209227, a change in LLVM that automatically sets
visibility to default when the linkage is changed to local (rather than
asserting).

What this testcase triggers is hard to reproduce otherwise:  the
`GlobalValue` is created (with non-local linkage), the visibility is set
to hidden, and then the linkage is set to local.

PR19760

llvm-svn: 209228
This commit is contained in:
Duncan P. N. Exon Smith 2014-05-20 19:04:31 +00:00
parent e432c510dc
commit d22b97c30b
1 changed files with 8 additions and 0 deletions

View File

@ -0,0 +1,8 @@
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-obj -o - -x c %s
// Reproduce the crash in PR19760.
static void foo(void) {}
void bar(void) __attribute__((alias("foo")))
__attribute__((visibility("hidden")));
// CHECK: @bar = hidden alias void ()* @foo
// CHECK: define internal void @foo()