From: Jakub Jelinek Date: Mon, 16 Jan 2012 21:49:58 +0000 (-0500) Subject: re PR c++/51854 (ICE in mangle.c with literal of complex floating type) X-Git-Tag: releases/gcc-4.6.3~172 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5259fc76c2a600b5af850d85d3de9cebb071a1c;p=thirdparty%2Fgcc.git re PR c++/51854 (ICE in mangle.c with literal of complex floating type) PR c++/51854 * mangle.c (write_template_arg_literal): Sorry instead of aborting. From-SVN: r183224 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f302fc3b353b..473571de0ce5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2012-01-16 Jakub Jelinek + + PR c++/51854 + * mangle.c (write_template_arg_literal): Sorry instead of aborting. + 2012-01-16 Jason Merrill PR c++/51868 diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 4f5185d740a2..37412968f2c1 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -2770,7 +2770,8 @@ write_template_arg_literal (const tree value) break; default: - gcc_unreachable (); + sorry ("mangling %C", TREE_CODE (value)); + break; } write_char ('E'); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5c13ce27f026..40f207d92764 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2012-01-16 Jason Merrill + PR c++/51854 + * g++.dg/abi/mangle60.C: New. + PR c++/51868 * g++.dg/cpp0x/rv-bitfield.C: New. * g++.dg/cpp0x/rv-bitfield2.C: New. diff --git a/gcc/testsuite/g++.dg/abi/mangle60.C b/gcc/testsuite/g++.dg/abi/mangle60.C new file mode 100644 index 000000000000..982ca4587e96 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/mangle60.C @@ -0,0 +1,21 @@ +// PR c++/51854 +// { dg-options "" } +// { dg-excess-errors "" { xfail *-*-* } } + +template struct A; + +template +char foo(U, V); + +// { dg-final { scan-assembler "_Z3barIiEvP1AIXszcl3foocvT__ELCi0_42EEEE" } } +template +void bar(A *); + +// { dg-final { scan-assembler "_Z3bazIiEvP1AIXszcl3foocvT__ELCf00000000_00000000EEEE" } } +template +void baz(A *); + +int main() { + bar(0); + baz(0); +}