diff options
author | Jason Merrill <jason@redhat.com> | 2012-07-18 15:51:36 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2012-07-18 15:51:36 -0400 |
commit | aefa74bd2bda63d1420265ba1a5261adeb4c305d (patch) | |
tree | 17ba6cc4288373c5855e2cb266f3100cba141ceb /gcc | |
parent | 1ff8c79bc5a0da6b628356ed983f1838397f7948 (diff) | |
download | gcc-aefa74bd2bda63d1420265ba1a5261adeb4c305d.zip gcc-aefa74bd2bda63d1420265ba1a5261adeb4c305d.tar.gz gcc-aefa74bd2bda63d1420265ba1a5261adeb4c305d.tar.bz2 |
cp-demangle.c (cplus_demangle_operators): Add *_cast.
* cp-demangle.c (cplus_demangle_operators): Add *_cast.
(op_is_new_cast): New.
(d_expression, d_print_comp): Check it.
From-SVN: r189630
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.dg/abi/mangle3-2.C | 20 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/abi/mangle3.C | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/nullptr01.C | 4 |
3 files changed, 23 insertions, 2 deletions
diff --git a/gcc/testsuite/g++.dg/abi/mangle3-2.C b/gcc/testsuite/g++.dg/abi/mangle3-2.C new file mode 100644 index 0000000..ac85fb0 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/mangle3-2.C @@ -0,0 +1,20 @@ +// Test mangling of type casts +// { dg-options "-fabi-version=0" } +// { dg-do compile } + +template<int i> class A {}; +template<bool b> class B {}; + +template<int i> void f(A<i> &, B<bool(i)> &) {} +template<int i> void g(A<i> &, B<static_cast<bool>(i)> &) {} + +int main() +{ + A<1> a; + B<true> b; + f(a, b); + g(a, b); +} + +// { dg-final { scan-assembler "\n_?_Z1fILi1EEvR1AIXT_EER1BIXcvbT_EE\[: \t\n\]" } } +// { dg-final { scan-assembler "\n_?_Z1gILi1EEvR1AIXT_EER1BIXscbT_EE\[: \t\n\]" } } diff --git a/gcc/testsuite/g++.dg/abi/mangle3.C b/gcc/testsuite/g++.dg/abi/mangle3.C index a20b877..5f44f76 100644 --- a/gcc/testsuite/g++.dg/abi/mangle3.C +++ b/gcc/testsuite/g++.dg/abi/mangle3.C @@ -1,4 +1,5 @@ // Test mangling of type casts +// { dg-options "-fabi-version=2" } // { dg-do compile } template<int i> class A {}; diff --git a/gcc/testsuite/g++.dg/debug/nullptr01.C b/gcc/testsuite/g++.dg/debug/nullptr01.C index ab08588..63c16ac 100644 --- a/gcc/testsuite/g++.dg/debug/nullptr01.C +++ b/gcc/testsuite/g++.dg/debug/nullptr01.C @@ -1,5 +1,5 @@ // Test that debugging backends don't crash on NULLPTR_TYPE. -// { dg-options "-std=c++0x" } +// { dg-options "-std=c++0x -fabi-version=0" } typedef decltype(nullptr) nullptr_t; @@ -12,4 +12,4 @@ template <> nullptr_t g(A<nullptr_t>) nullptr_t local; } // { dg-final { scan-assembler "_Z1fDn" } } -// { dg-final { scan-assembler "_Z1gI1AIDnEES1_T_" } } +// { dg-final { scan-assembler "_Z1gI1AIDnEEDnT_" } } |