diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-10-22 07:15:56 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-10-22 07:15:56 +0000 |
commit | ee6c4094a011d861fde41ed53de8db7b83b50181 (patch) | |
tree | 112e481dac3e63fe45e1aa3e4777c8628afab051 /clang/test/CodeGenCXX/mangle-ms-cxx11.cpp | |
parent | 5c97dfdc9c15131f6523297c4de6e0456e752312 (diff) | |
download | bcm5719-llvm-ee6c4094a011d861fde41ed53de8db7b83b50181.tar.gz bcm5719-llvm-ee6c4094a011d861fde41ed53de8db7b83b50181.zip |
[MS ABI] Mangle static anonymous unions
We believed that internal linkage variables at global scope which are
not variable template specializations did not have to be mangled.
However, static anonymous unions have no identifier and therefore must
be mangled.
This fixes PR18204.
llvm-svn: 250997
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-ms-cxx11.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-ms-cxx11.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp b/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp index 0a4c602df62..999def87fc5 100644 --- a/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp +++ b/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp @@ -277,3 +277,12 @@ void g() { // CHECK-DAG: @"\01??$f@W4<unnamed-type-E>@?1??g@PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?1??g@0@YAXXZ@@Z" // CHECK-DAG: @"\01??$f@W4<unnamed-type-E>@?2??g@PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?2??g@0@YAXXZ@@Z" } + +namespace PR18204 { +template <typename T> +int f(T *); +static union { + int n = f(this); +}; +// CHECK-DAG: @"\01??$f@T<unnamed-type-$S1>@PR18204@@@PR18204@@YAHPAT<unnamed-type-$S1>@0@@Z" +} |