From de78bba047b76d040fdbf1ef0ab2ebd3891f9675 Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Tue, 16 Oct 2012 17:45:27 +0000 Subject: 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. llvm-svn: 166032 --- clang/test/CodeGen/attr-weakref.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'clang/test/CodeGen/attr-weakref.c') diff --git a/clang/test/CodeGen/attr-weakref.c b/clang/test/CodeGen/attr-weakref.c index c1cc03b668d..560d39141ca 100644 --- a/clang/test/CodeGen/attr-weakref.c +++ b/clang/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"))); -- cgit v1.2.3