summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-ms.cpp
diff options
context:
space:
mode:
authorCharles Davis <cdavis@mines.edu>2010-06-30 08:09:57 +0000
committerCharles Davis <cdavis@mines.edu>2010-06-30 08:09:57 +0000
commit2a47730767043cb213337692c7e02002274763ae (patch)
tree673d4a3ff6886248d1f8321c83795b9d83710229 /clang/test/CodeGenCXX/mangle-ms.cpp
parent169e43c4cf82e47aabe0cb7a4a2570d99a3d30e7 (diff)
downloadbcm5719-llvm-2a47730767043cb213337692c7e02002274763ae.tar.gz
bcm5719-llvm-2a47730767043cb213337692c7e02002274763ae.zip
Mangle arrays in the Microsoft C++ Mangler. It's not quite finished (it
doesn't mangle array parameters right), but I think that should be fixed in Sema (Doug, John, what do you think?). Also, stub out the remaining mangleType() routines. llvm-svn: 107264
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-ms.cpp')
-rw-r--r--clang/test/CodeGenCXX/mangle-ms.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-ms.cpp b/clang/test/CodeGenCXX/mangle-ms.cpp
index d0bd4a967de..6f1f95ccd08 100644
--- a/clang/test/CodeGenCXX/mangle-ms.cpp
+++ b/clang/test/CodeGenCXX/mangle-ms.cpp
@@ -8,6 +8,7 @@
// CHECK: @"\01?f@foo@@2DD"
// CHECK: @"\01?g@bar@@2HA"
// CHECK: @"\01?h@@3QAHA"
+// CHECK: @"\01?i@@3PAY0BD@HA"
int a;
@@ -42,6 +43,8 @@ enum quux {
qthree
};
+// NOTE: The calling convention is supposed to be __thiscall by default,
+// but that needs to be fixed in Sema/AST.
int foo::operator+(int a) {return a;}
// CHECK: @"\01??Hfoo@@QAAHH@Z"
@@ -53,6 +56,8 @@ int bar::g;
extern int * const h = &a;
+int i[10][20];
+
// Static functions are mangled, too.
// Also make sure calling conventions, arglists, and throw specs work.
static void __stdcall alpha(float a, double b) throw() {}
@@ -71,3 +76,8 @@ void gamma(class foo, struct bar, union baz, enum quux) {}
// Make sure pointer/reference-type mangling works.
void delta(int * const a, const long &) {}
// CHECK: @"\01?delta@@YAXQAHABJ@Z"
+
+// Array mangling. (It should be mangled as a const pointer, but that needs
+// to be fixed in Sema.)
+void epsilon(int a[][10][20]) {}
+// CHECK: @"\01?epsilon@@YAXPAY19BD@H@Z"
OpenPOWER on IntegriCloud