diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-03-12 15:22:39 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-03-12 15:22:39 +0000 |
commit | b22b91c3e4c23fdafec2cb05d65972955152f7f6 (patch) | |
tree | cb8a64ff64c288de4b011b3f50132a5d709208e8 /clang/test/CodeGenCXX/extern-c.cpp | |
parent | 01271c602288ccec767645bce3579c842e45ed40 (diff) | |
download | bcm5719-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.cpp | 16 |
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; +} |