diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2013-07-10 00:30:46 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2013-07-10 00:30:46 +0000 |
commit | 3b7d46c3ae516c81d19e53fa9d9b105919f6dd97 (patch) | |
tree | cea38305a338cf8065c2eb8e2e832623cd01f2de /clang/test/CodeGenCXX/mangle.cpp | |
parent | a830ea7431afca36431825f028a3c7817d1a940d (diff) | |
download | bcm5719-llvm-3b7d46c3ae516c81d19e53fa9d9b105919f6dd97.tar.gz bcm5719-llvm-3b7d46c3ae516c81d19e53fa9d9b105919f6dd97.zip |
More local mangling fixes.
Compute mangling numbers for externally visible local variables and tags.
Change the mangler to consistently use discriminators where necessary.
Tweak the scheme we use to number decls which are not externally visible
to avoid unnecessary discriminators in common cases now that we request
them more consistently.
Fixes <rdar://problem/14204721>.
llvm-svn: 185986
Diffstat (limited to 'clang/test/CodeGenCXX/mangle.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp index 5f31e5480d2..4b601229d34 100644 --- a/clang/test/CodeGenCXX/mangle.cpp +++ b/clang/test/CodeGenCXX/mangle.cpp @@ -888,7 +888,7 @@ namespace test38 { } namespace test39 { - // CHECK: define internal void @"_ZN6test394funcINS_3$_0Ut_EEEvT_" + // CHECK: define internal void @"_ZN6test394funcINS_3$_03$_1EEEvT_" typedef struct { struct {} a; } *foo; @@ -897,3 +897,16 @@ namespace test39 { func(x->a); } } + +namespace test40 { + // CHECK: i32* @_ZZN6test401fEvE1a_0 + void h(int&); + inline void f() { + if (0) { + static int a; + } + static int a; + h(a); + }; + void g() { f(); } +} |