diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2013-04-25 04:25:40 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2013-04-25 04:25:40 +0000 |
commit | 2816c023ea32855b51456b95955448a3e675861b (patch) | |
tree | 25ef03ffbd8ca6b61c58478bdb8fae76af0ab185 /clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp | |
parent | 72780ed996fa2aaaf14923f82dcb719ea84fc23f (diff) | |
download | bcm5719-llvm-2816c023ea32855b51456b95955448a3e675861b.tar.gz bcm5719-llvm-2816c023ea32855b51456b95955448a3e675861b.zip |
[ms-cxxabi] Fix a number of bugs in the mangler.
This includes the following fixes:
- Implement 4 subtly different variants of qualifier mangling and use them
in what I believe are the right places.
- Fix handling of array types. Previously we were always decaying them,
which is wrong if the type appears as a template argument, pointee,
referent etc.
Fixes PR13182.
Differential Revision: http://llvm-reviews.chandlerc.com/D709
llvm-svn: 180250
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp b/clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp index 63bc4a9eb3c..87e04c645ec 100644 --- a/clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp +++ b/clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp @@ -155,6 +155,15 @@ const volatile struct S* f5() { return 0; } struct S& f6() { return *(struct S*)0; } // CHECK: "\01?f6@@YAAAUS@@XZ" +struct S* const f7() { return 0; } +// CHECK: "\01?f7@@YAQAUS@@XZ" + +int S::* f8() { return 0; } +// CHECK: "\01?f8@@YAPQS@@HXZ" + +int S::* const f9() { return 0; } +// CHECK: "\01?f9@@YAQQS@@HXZ" + typedef int (*function_pointer)(int); function_pointer g1() { return 0; } |