summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/alias.c
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-10-15 22:38:23 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-10-15 22:38:23 +0000
commitbb525f7c200aab0ba2ebff88031a636510e89b59 (patch)
treef1bcd6420ccdfdb5e2c1d19107f2abba1e504512 /clang/test/CodeGen/alias.c
parent0b15e34bd15e24d6f52bfc259a44e0d149cbf54b (diff)
downloadbcm5719-llvm-bb525f7c200aab0ba2ebff88031a636510e89b59.tar.gz
bcm5719-llvm-bb525f7c200aab0ba2ebff88031a636510e89b59.zip
CodeGen: Don't drop thread_local when emitting __thread aliases
CodeGen wouldn't mark the aliasee as thread_local if the aliasee was a tentative definition. Even if the definition was already emitted, it would never mark the alias as thread_local. This fixes PR21288. llvm-svn: 219859
Diffstat (limited to 'clang/test/CodeGen/alias.c')
-rw-r--r--clang/test/CodeGen/alias.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/CodeGen/alias.c b/clang/test/CodeGen/alias.c
index faed487a404..b773cc8de93 100644
--- a/clang/test/CodeGen/alias.c
+++ b/clang/test/CodeGen/alias.c
@@ -3,6 +3,8 @@
int g0;
// CHECKBASIC: @g0 = common global i32 0
+__thread int TL_WITH_ALIAS;
+// CHECKBASIC-DAG: @TL_WITH_ALIAS = thread_local global i32 0, align 4
static int bar1 = 42;
// CHECKBASIC: @bar1 = internal global i32 42
@@ -10,6 +12,9 @@ extern int g1;
extern int g1 __attribute((alias("g0")));
// CHECKBASIC-DAG: @g1 = alias i32* @g0
+extern __thread int __libc_errno __attribute__ ((alias ("TL_WITH_ALIAS")));
+// CHECKBASIC-DAG: @__libc_errno = thread_local alias i32* @TL_WITH_ALIAS
+
void f0(void) { }
extern void f1(void);
extern void f1(void) __attribute((alias("f0")));
OpenPOWER on IntegriCloud