PR c++/52869 * cp-tree.def (DEFAULT_ARG): Update commentary. * cp-tree.h (UNPARSED_NOEXCEPT_SPEC_P): New macro. (tree_default_arg): Use tree_base instead of tree_common. (do_push_parm_decls, maybe_check_overriding_exception_spec): Declare. * decl.c (do_push_parm_decls): New function, broken out of... (store_parm_decls): ...here. Call it. * except.c (nothrow_spec_p): Accept DEFAULT_ARG in the assert. * parser.c (cp_parser_noexcept_specification_opt, cp_parser_late_noexcept_specifier, noexcept_override_late_checks): Forward-declare. (unparsed_noexcepts): New macro. (push_unparsed_function_queues): Update initializer. (cp_parser_direct_declarator): Pass FRIEND_P to cp_parser_exception_specification_opt. (inject_parm_decls): New. (pop_injected_parms): New. (cp_parser_class_specifier_1): Implement delayed parsing of noexcept-specifiers. (cp_parser_save_noexcept): New. (cp_parser_late_noexcept_specifier): New. (noexcept_override_late_checks): New. (cp_parser_noexcept_specification_opt): Add FRIEND_P parameter. Call cp_parser_save_noexcept instead of the normal processing if needed. (cp_parser_exception_specification_opt): Add FRIEND_P parameter and pass it to cp_parser_noexcept_specification_opt. (cp_parser_save_member_function_body): Fix comment. (cp_parser_save_default_args): Maybe save the noexcept-specifier to post process. (cp_parser_transaction): Update call to cp_parser_noexcept_specification_opt. (cp_parser_transaction_expression): Likewise. * parser.h (cp_unparsed_functions_entry): Add new field to carry a noexcept-specifier. * pt.c (dependent_type_p_r): Handle unparsed noexcept expression. * search.c (maybe_check_overriding_exception_spec): New function, broken out of... (check_final_overrider): ...here. Call maybe_check_overriding_exception_spec. * tree.c (canonical_eh_spec): Handle UNPARSED_NOEXCEPT_SPEC_P. (cp_tree_equal): Handle DEFAULT_ARG. * g++.dg/cpp0x/noexcept45.C: New test. * g++.dg/cpp0x/noexcept46.C: New test. * g++.dg/cpp0x/noexcept47.C: New test. * g++.dg/cpp0x/noexcept48.C: New test. * g++.dg/cpp0x/noexcept49.C: New test. * g++.dg/cpp0x/noexcept50.C: New test. * g++.dg/cpp0x/noexcept51.C: New test. * g++.dg/cpp0x/noexcept52.C: New test. * g++.dg/cpp0x/noexcept53.C: New test. * g++.dg/eh/shadow1.C: Adjust dg-error. From-SVN: r272586
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
080514-1.C | Loading commit data... | |
alias1.C | Loading commit data... | |
anon1.C | Loading commit data... | |
anon1a.cc | Loading commit data... | |
anon2.C | Loading commit data... | |
arm-iwmmxt-unwind.C | Loading commit data... | |
arm-vfp-unwind.C | Loading commit data... | |
array1.C | Loading commit data... | |
async-unwind1.C | Loading commit data... | |
async-unwind2.C | Loading commit data... | |
builtin1.C | Loading commit data... | |
builtin10.C | Loading commit data... | |
builtin11.C | Loading commit data... | |
builtin2.C | Loading commit data... | |
builtin3.C | Loading commit data... | |
builtin4.C | Loading commit data... | |
builtin5.C | Loading commit data... | |
builtin6.C | Loading commit data... | |
builtin7.C | Loading commit data... | |
builtin8.C | Loading commit data... | |
builtin9.C | Loading commit data... | |
cast1.C | Loading commit data... | |
catch1.C | Loading commit data... | |
catch2.C | Loading commit data... | |
catch3.C | Loading commit data... | |
catch4.C | Loading commit data... | |
catch5.C | Loading commit data... | |
check-vect.h | Loading commit data... | |
cleanup1.C | Loading commit data... | |
cleanup2.C | Loading commit data... | |
cleanup3.C | Loading commit data... | |
cleanup4.C | Loading commit data... | |
cleanup5.C | Loading commit data... | |
comdat1.C | Loading commit data... | |
cond1.C | Loading commit data... | |
cond2.C | Loading commit data... | |
cond3.C | Loading commit data... | |
cond4.C | Loading commit data... | |
cond5.C | Loading commit data... | |
cond6.C | Loading commit data... | |
crash1.C | Loading commit data... | |
crossjump1.C | Loading commit data... | |
ctor1.C | Loading commit data... | |
ctor2.C | Loading commit data... | |
ctor3.C | Loading commit data... | |
dead1.C | Loading commit data... | |
defarg1.C | Loading commit data... | |
delayslot1.C | Loading commit data... | |
delete1.C | Loading commit data... | |
div.C | Loading commit data... | |
dtor1.C | Loading commit data... | |
dtor2.C | Loading commit data... | |
dtor3.C | Loading commit data... | |
ehopt1.C | Loading commit data... | |
elide1.C | Loading commit data... | |
elide2.C | Loading commit data... | |
filter1.C | Loading commit data... | |
filter2.C | Loading commit data... | |
forced1.C | Loading commit data... | |
forced2.C | Loading commit data... | |
forced3.C | Loading commit data... | |
forced4.C | Loading commit data... | |
fp-regs.C | Loading commit data... | |
gcsec1.C | Loading commit data... | |
goto1.C | Loading commit data... | |
goto2.C | Loading commit data... | |
goto3.C | Loading commit data... | |
ia64-1.C | Loading commit data... | |
ia64-2.C | Loading commit data... | |
init-temp1.C | Loading commit data... | |
init-temp2.C | Loading commit data... | |
loop1.C | Loading commit data... | |
loop2.C | Loading commit data... | |
nested-try.C | Loading commit data... | |
new1.C | Loading commit data... | |
nrv1.C | Loading commit data... | |
o32-fp.C | Loading commit data... | |
omit-frame-pointer.C | Loading commit data... | |
omit-frame-pointer2.C | Loading commit data... | |
partial1.C | Loading commit data... | |
ppc64-sighandle-cr.C | Loading commit data... | |
pr29166.C | Loading commit data... | |
pr38662.C | Loading commit data... | |
pr41819.C | Loading commit data... | |
pr42859.C | Loading commit data... | |
pr43365.C | Loading commit data... | |
pr45569.C | Loading commit data... | |
pr84968.C | Loading commit data... | |
registers1.C | Loading commit data... | |
scope1.C | Loading commit data... | |
shadow1.C | Loading commit data... | |
sighandle.C | Loading commit data... | |
simd-1.C | Loading commit data... | |
simd-2.C | Loading commit data... | |
simd-3.C | Loading commit data... | |
simd-4.C | Loading commit data... | |
simd-5.C | Loading commit data... | |
spbp.C | Loading commit data... | |
spec1.C | Loading commit data... | |
spec10.C | Loading commit data... | |
spec11.C | Loading commit data... | |
spec2.C | Loading commit data... | |
spec3.C | Loading commit data... | |
spec4.C | Loading commit data... | |
spec5.C | Loading commit data... | |
spec6.C | Loading commit data... | |
spec7.C | Loading commit data... | |
spec8.C | Loading commit data... | |
spec9.C | Loading commit data... | |
stabilize.C | Loading commit data... | |
stdarg1.C | Loading commit data... | |
subreg-1.C | Loading commit data... | |
synth1.C | Loading commit data... | |
synth2.C | Loading commit data... | |
table.C | Loading commit data... | |
template1.C | Loading commit data... | |
template2.C | Loading commit data... | |
terminate1.C | Loading commit data... | |
throw1.C | Loading commit data... | |
throw2.C | Loading commit data... | |
throw3.C | Loading commit data... | |
uncaught1.C | Loading commit data... | |
uncaught2.C | Loading commit data... | |
uncaught3.C | Loading commit data... | |
uncaught4.C | Loading commit data... | |
unexpected1.C | Loading commit data... | |
unwind-direct.C | Loading commit data... | |
unwind1.C | Loading commit data... | |
unwind2.C | Loading commit data... | |
weak1-a.cc | Loading commit data... | |
weak1.C | Loading commit data... |