diff options
author | Jason Merrill <jason@redhat.com> | 2009-03-17 19:31:18 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2009-03-17 19:31:18 -0400 |
commit | 448545cb51bdf3d74c3d75f3b88dbf8c7a8de984 (patch) | |
tree | a0bf6190acd7e4997d3304c4bfe60c3c1b461532 /libiberty/testsuite | |
parent | 0075846f90cb2f586f7600d1dd1d522de9dbc00f (diff) | |
download | gcc-448545cb51bdf3d74c3d75f3b88dbf8c7a8de984.zip gcc-448545cb51bdf3d74c3d75f3b88dbf8c7a8de984.tar.gz gcc-448545cb51bdf3d74c3d75f3b88dbf8c7a8de984.tar.bz2 |
decl.c (grokfndecl): Set DECL_CONTEXT on parms.
cp/:
* decl.c (grokfndecl): Set DECL_CONTEXT on parms.
(duplicate_decls): Adjust DECL_CONTEXT of newdecl's parms.
* pt.c (check_explicit_specialization): Likewise.
(tsubst_copy) [PARM_DECL]: Return a dummy parm if we don't have a
local specialization.
* tree.c (cp_tree_equal) [PARM_DECL]: Check type and index, not name.
* decl2.c (parm_index): New fn.
* semantics.c (finish_decltype_type): Don't use describable_type.
* mangle.c (write_expression): Likewise. Mangle ALIGNOF_EXPR.
Give a sorry for unsupported codes rather than crash. Mangle
conversions with other than 1 operand. New mangling for PARM_DECL.
* operators.def (ALIGNOF_EXPR): Mangle as az.
* include/demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_FUNCTION_PARAM.
* libiberty/cp-demangle.c (d_make_function_param): new fn.
(cplus_demangle_mangled_name): Work around abi v2 bug.
(d_expr_primary): Likewise.
(cplus_demangle_operators): Add alignof ops.
(d_expression): Handle function parameters and conversions
with other than 1 operand.
(d_print_comp): Handle function parameters. Fix bug with
function used in type of function.
From-SVN: r144924
Diffstat (limited to 'libiberty/testsuite')
-rw-r--r-- | libiberty/testsuite/demangle-expected | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index d9efbc0..cded6b5 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -3723,7 +3723,7 @@ foo<int (*) [3]> # This used to crash the demangler--PR 16240 --format=gnu-v3 --no-params _ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE -_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE +PatternDriver::StringScalarDeleteValue::StringScalarDeleteValue(PatternDriver::ConflateStringScalarValue const&, PatternDriver::AbstractStringScalarValue const&, PatternDriver::TemplateEnum<PatternDriver::pdcomplement, PatternDriver::complement_names, PatternDriver::COMPLEMENTENUM> const&) PatternDriver::StringScalarDeleteValue::StringScalarDeleteValue # # This used to cause the demangler to walk into undefined memory--PR 22268 @@ -3884,12 +3884,12 @@ _ZGr32_java$Sutil$Siso4217$_properties java resource java/util/iso4217.properties # decltype/param placeholder test --format=gnu-v3 -_Z3addIidEDTplsTT_sTT0_ES0_S1_ -decltype ((int)+(double)) add<int, double>(int, double) +_Z3addIidEDTplfp_fp0_ET_T0_ +decltype ((parm#1)+(parm#2)) add<int, double>(int, double) # decltype/fn call test --format=gnu-v3 -_Z4add3IidEDTclL_Z1gEsTT_sTT0_EES0_S1_ -decltype (g(int, double)) add3<int, double>(int, double) +_Z4add3IidEDTclL_Z1gEfp_fp0_EET_T0_ +decltype (g(parm#1, parm#2)) add3<int, double>(int, double) # new (2008) built in types test --format=gnu-v3 _Z1fDfDdDeDhDsDi @@ -3900,5 +3900,9 @@ _Z1fIIPiPfPdEEvDpT_ void f<int*, float*, double*>(int*, float*, double*) # '.' test --format=gnu-v3 -_Z1hI1AIiEdEDTcldtsTT_1gIT0_EEES2_S3_ -decltype (((A<int>).(g<double>))()) h<A<int>, double>(A<int>, double) +_Z1hI1AIiEdEDTcldtfp_1gIT0_EEET_S2_ +decltype (((parm#1).(g<double>))()) h<A<int>, double>(A<int>, double) +# test for typed function in decltype +--format=gnu-v3 +_ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_ +decltype ((parm#1)+((x())())) A<int>::j<int>(int) |