diff options
author | John McCall <rjmccall@apple.com> | 2010-02-04 01:42:13 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-02-04 01:42:13 +0000 |
commit | 09de8ecd887cff1520ba301a82f223c85b4e4e38 (patch) | |
tree | a506bf51465c65d95bfc7e7eb3451b13f2d0279f /clang/test/CodeGenCXX/mangle.cpp | |
parent | 77fe07a93aeb8feaf39b7d48ad8fc1e6c9e4c78e (diff) | |
download | bcm5719-llvm-09de8ecd887cff1520ba301a82f223c85b4e4e38.tar.gz bcm5719-llvm-09de8ecd887cff1520ba301a82f223c85b4e4e38.zip |
Add mangling support for calls, sizeof/alignof, constructor calls,
float literals, and unresolved lookups (which required hand-wavey extensions).
llvm-svn: 95273
Diffstat (limited to 'clang/test/CodeGenCXX/mangle.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp index b4f2a3de442..2e9afd02817 100644 --- a/clang/test/CodeGenCXX/mangle.cpp +++ b/clang/test/CodeGenCXX/mangle.cpp @@ -322,3 +322,38 @@ static int pr5966_i; void pr5966_bar() { pr5966_i = 0; } + +namespace test0 { + int ovl(int x); + char ovl(double x); + + template <class T> void f(T, char (&buffer)[sizeof(ovl(T()))]) {} + + void test0() { + char buffer[1]; + f(0.0, buffer); + } + // CHECK: define void @_ZN5test05test0Ev() + // CHECK: define linkonce_odr void @_ZN5test01fIdEEvT_RAszcl3ovlcvS1__EE_c( + + void test1() { + char buffer[sizeof(int)]; + f(1, buffer); + } + // CHECK: define void @_ZN5test05test1Ev() + // CHECK: define linkonce_odr void @_ZN5test01fIiEEvT_RAszcl3ovlcvS1__EE_c( + + template <class T> void g(char (&buffer)[sizeof(T() + 5.0f)]) {} + void test2() { + char buffer[sizeof(float)]; + g<float>(buffer); + } + // CHECK: define linkonce_odr void @_ZN5test01gIfEEvRAszplcvT__ELf40A00000E_c( + + template <class T> void h(char (&buffer)[sizeof(T() + 5.0)]) {} + void test3() { + char buffer[sizeof(double)]; + h<float>(buffer); + } + // CHECK: define linkonce_odr void @_ZN5test01hIfEEvRAszplcvT__ELd4014000000000000E_c( +} |