summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/extern-c.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-03-12 15:22:39 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-03-12 15:22:39 +0000
commitb22b91c3e4c23fdafec2cb05d65972955152f7f6 (patch)
treecb8a64ff64c288de4b011b3f50132a5d709208e8 /clang/test/CodeGenCXX/extern-c.cpp
parent01271c602288ccec767645bce3579c842e45ed40 (diff)
downloadbcm5719-llvm-b22b91c3e4c23fdafec2cb05d65972955152f7f6.tar.gz
bcm5719-llvm-b22b91c3e4c23fdafec2cb05d65972955152f7f6.zip
Correctly compute linkage of decls forward declared extern C.
This fixes a crash in namespace { struct X {}; } extern "C" X test2_b; X test2_b before we would assign different linkages to each of the test2_b decls. llvm-svn: 176869
Diffstat (limited to 'clang/test/CodeGenCXX/extern-c.cpp')
-rw-r--r--clang/test/CodeGenCXX/extern-c.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/clang/test/CodeGenCXX/extern-c.cpp b/clang/test/CodeGenCXX/extern-c.cpp
index 794171b426e..a8c4f0cdbd3 100644
--- a/clang/test/CodeGenCXX/extern-c.cpp
+++ b/clang/test/CodeGenCXX/extern-c.cpp
@@ -20,9 +20,19 @@ namespace test1 {
struct X {};
}
extern "C" {
- // CHECK: @b = global
- X b = X();
+ // CHECK: @test1_b = global
+ X test1_b = X();
}
- void *use = &b;
+ void *use = &test1_b;
// CHECK: @_ZN5test13useE = global
}
+
+namespace test2 {
+ namespace {
+ struct X {};
+ }
+
+ // CHECK: @test2_b = global
+ extern "C" X test2_b;
+ X test2_b;
+}
OpenPOWER on IntegriCloud