diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2012-10-16 17:45:27 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2012-10-16 17:45:27 +0000 |
commit | 4695f91f4302a90ae462cd64dda59b34c3dad821 (patch) | |
tree | 66649fe07335fd10f213614c983a10aee2f804d2 /test/CodeGen/attr-weakref.c | |
parent | 1c9a2daf902aacb1a606497a7d09a7c2c29957ed (diff) |
When using a symbol with attribute weakref, search for it first and
don't try the normal GetOrCreateLLVM. The latter could drop the weak
atrtibute on the second reference, if there is no explicit declaration
of the aliasee.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166032 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/attr-weakref.c')
-rw-r--r-- | test/CodeGen/attr-weakref.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/test/CodeGen/attr-weakref.c b/test/CodeGen/attr-weakref.c index c1cc03b668..560d39141c 100644 --- a/test/CodeGen/attr-weakref.c +++ b/test/CodeGen/attr-weakref.c @@ -53,6 +53,12 @@ void test6_foo(void) { test6_f(); } +// CHECK: declare extern_weak void @test8_f() +static void test8_g(void) __attribute__((weakref("test8_f"))); +void test8_h(void) { + if (test8_g) + test8_g(); +} // CHECK: declare extern_weak void @test7_f() void test7_f(void); static void test7_g(void) __attribute__((weakref("test7_f"))); |