summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/g++.dg/cpp0x/rv6n.C
Commit message (Collapse)AuthorAgeFilesLines
* * lib/g++-dg.exp (g++-dg-runtest): Run tests in C++1y mode, too.jason2014-03-071-2/+2
| | | | | | | | | | | | | | * lib/target-supports.exp (check_effective_target_c++11): Now means C++11 and up. (check_effective_target_c++11_only): New. (check_effective_target_c++11_down): New. (check_effective_target_c++1y): New. (check_effective_target_c++1y_only): New. (check_effective_target_c++98_only): Rename from check_effective_target_c++98. * g++.dg/*: Use { target c++11 } instead of -std=c++11. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208416 138bc75d-0d04-0410-961f-82ee72b054a4
* ++0x -> ++11.mrs2013-10-221-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203939 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/50500jason2011-10-181-37/+37
| | | | | | | | | | | | | | | DR 1082 * class.c (type_has_user_declared_move_constructor): New. (type_has_user_declared_move_assign): New. (add_implicitly_declared_members): Add lazy copy ops even if there's a move. * method.c (lazily_declare_fn): Delete implicit copies if there's a move. (maybe_explain_implicit_delete): Explain this. Use inform rather than error. * cp-tree.h: Declare new fns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180159 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/cp/froydnj2010-12-081-14/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR c++/45329 * call.c (struct conversion): Document bad_p field. (enum rejection_reason_code): Define. (struct conversion_info): Define. (struct rejection_reason): Define. (struct z_candidate): Add `reason' field. (add_candidate): Add `reason' parameter. Store it in CAND. (alloc_rejection, arity_rejection, arg_conversion_rejection): New functions. (bad_arg_conversion_rejection): New function. (convert_class_to_reference): Add comment. (remaining_arguments): New function. (add_function_candidate): Record rejection reason and pass it to add_candidate. (add_conv_candidate, build_builtin_candidate): Likewise. (add_template_candidate_real): Likewise. (print_conversion_rejection): New function. (print_z_candidate): Print CAND->REASON if it exists. Adjust diagnostic strings. (print_z_candidates): Add location_t argument. Adjust calling sequence for print_z_candidate. Print header line directly. (build_user_type_conversion_1): Add reason for rejection to CAND. Adjust call to print_z_candidates. (print_error_for_call_failure): New function. (build_new_function_call): Call it. Adjust call to print_z_candidates. (build_operator_new_call): Likewise. (build_op_call): Likewise. (build_conditional_expr): Likewise. (build_new_op): Likewise. (build_new_method_call): Likewise. gcc/testsuite/ PR c++/45329 * testsuite/g++.dg/conversion/ambig1.C: Adjust. * testsuite/g++.dg/conversion/op1.C: Adjust. * testsuite/g++.dg/conversion/simd1.C: Adjust. * testsuite/g++.dg/cpp0x/defaulted14.C: Adjust. * testsuite/g++.dg/cpp0x/defaulted18.C: Adjust. * testsuite/g++.dg/cpp0x/defaulted20.C: Adjust. * testsuite/g++.dg/cpp0x/explicit3.C: Adjust. * testsuite/g++.dg/cpp0x/explicit4.C: Adjust. * testsuite/g++.dg/cpp0x/implicit4.C: Adjust. * testsuite/g++.dg/cpp0x/nullptr15.C: Adjust. * testsuite/g++.dg/cpp0x/nullptr19.C: Adjust. * testsuite/g++.dg/cpp0x/pr31431-2.C: Adjust. * testsuite/g++.dg/cpp0x/pr31431.C: Adjust. * testsuite/g++.dg/cpp0x/pr31434.C: Adjust. * testsuite/g++.dg/cpp0x/pr31437.C: Adjust. * testsuite/g++.dg/cpp0x/rv2n.C: Adjust. * testsuite/g++.dg/cpp0x/rv3n.C: Adjust. * testsuite/g++.dg/cpp0x/rv4n.C: Adjust. * testsuite/g++.dg/cpp0x/rv5n.C: Adjust. * testsuite/g++.dg/cpp0x/rv6n.C: Adjust. * testsuite/g++.dg/cpp0x/rv7n.C: Adjust. * testsuite/g++.dg/cpp0x/temp_default2.C: Adjust. * testsuite/g++.dg/cpp0x/trailing4.C: Adjust. * testsuite/g++.dg/cpp0x/variadic-ex3.C: Adjust. * testsuite/g++.dg/cpp0x/variadic-ex4.C: Adjust. * testsuite/g++.dg/cpp0x/variadic35.C: Adjust. * testsuite/g++.dg/cpp0x/vt-35147.C: Adjust. * testsuite/g++.dg/cpp0x/vt-37737-2.C: Adjust. * testsuite/g++.dg/expr/cond9.C: Adjust. * testsuite/g++.dg/expr/pmf-1.C: Adjust. * testsuite/g++.dg/ext/label5.C: Adjust. * testsuite/g++.dg/ext/visibility/anon8.C: Adjust. * testsuite/g++.dg/ext/vla2.C: Adjust. * testsuite/g++.dg/gomp/pr26690-1.C: Adjust. * testsuite/g++.dg/gomp/pr26690-2.C: Adjust. * testsuite/g++.dg/init/synth2.C: Adjust. * testsuite/g++.dg/lookup/conv-1.C: Adjust. * testsuite/g++.dg/lookup/new1.C: Adjust. * testsuite/g++.dg/lookup/using9.C: Adjust. * testsuite/g++.dg/other/error13.C: Adjust. * testsuite/g++.dg/other/error20.C: Adjust. * testsuite/g++.dg/other/error31.C: Adjust. * testsuite/g++.dg/other/pr28114.C: Adjust. * testsuite/g++.dg/other/ptrmem10.C: Adjust. * testsuite/g++.dg/other/ptrmem11.C: Adjust. * testsuite/g++.dg/overload/ambig1.C: Adjust. * testsuite/g++.dg/overload/arg3.C: Adjust. * testsuite/g++.dg/overload/builtin1.C: Adjust. * testsuite/g++.dg/overload/copy1.C: Adjust. * testsuite/g++.dg/overload/new1.C: Adjust. * testsuite/g++.dg/overload/template4.C: Adjust. * testsuite/g++.dg/overload/unknown1.C: Adjust. * testsuite/g++.dg/overload/using2.C: Adjust. * testsuite/g++.dg/parse/crash5.C: Adjust. * testsuite/g++.dg/parse/error19.C: Adjust. * testsuite/g++.dg/parse/error28.C: Adjust. * testsuite/g++.dg/parse/template7.C: Adjust. * testsuite/g++.dg/parse/typename7.C: Adjust. * testsuite/g++.dg/rtti/typeid6.C: Adjust. * testsuite/g++.dg/tc1/dr152.C: Adjust. * testsuite/g++.dg/template/conv11.C: Adjust. * testsuite/g++.dg/template/copy1.C: Adjust. * testsuite/g++.dg/template/crash37.C: Adjust. * testsuite/g++.dg/template/deduce3.C: Adjust. * testsuite/g++.dg/template/dependent-expr5.C: Adjust. * testsuite/g++.dg/template/error38.C: Adjust. * testsuite/g++.dg/template/error40.C: Adjust. * testsuite/g++.dg/template/friend.C: Adjust. * testsuite/g++.dg/template/incomplete2.C: Adjust. * testsuite/g++.dg/template/instantiate5.C: Adjust. * testsuite/g++.dg/template/local4.C: Adjust. * testsuite/g++.dg/template/local6.C: Adjust. * testsuite/g++.dg/template/new3.C: Adjust. * testsuite/g++.dg/template/operator9.C: Adjust. * testsuite/g++.dg/template/overload6.C: Adjust. * testsuite/g++.dg/template/ptrmem2.C: Adjust. * testsuite/g++.dg/template/ptrmem20.C: Adjust. * testsuite/g++.dg/template/ptrmem4.C: Adjust. * testsuite/g++.dg/template/ptrmem8.C: Adjust. * testsuite/g++.dg/template/qualttp5.C: Adjust. * testsuite/g++.dg/template/sfinae2.C: Adjust. * testsuite/g++.dg/template/spec22.C: Adjust. * testsuite/g++.dg/template/spec23.C: Adjust. * testsuite/g++.dg/template/ttp25.C: Adjust. * testsuite/g++.dg/template/typedef4.C: Adjust. * testsuite/g++.dg/template/unify10.C: Adjust. * testsuite/g++.dg/template/unify11.C: Adjust. * testsuite/g++.dg/template/unify6.C: Adjust. * testsuite/g++.dg/template/unify7.C: Adjust. * testsuite/g++.dg/template/unify9.C: Adjust. * testsuite/g++.dg/template/varmod1.C: Adjust. * testsuite/g++.old-deja/g++.benjamin/15799.C: Adjust. * testsuite/g++.old-deja/g++.benjamin/15800-1.C: Adjust. * testsuite/g++.old-deja/g++.brendan/ambiguity1.C: Adjust. * testsuite/g++.old-deja/g++.brendan/crash29.C: Adjust. * testsuite/g++.old-deja/g++.brendan/crash48.C: Adjust. * testsuite/g++.old-deja/g++.brendan/crash56.C: Adjust. * testsuite/g++.old-deja/g++.brendan/cvt3.C: Adjust. * testsuite/g++.old-deja/g++.brendan/overload1.C: Adjust. * testsuite/g++.old-deja/g++.brendan/overload4.C: Adjust. * testsuite/g++.old-deja/g++.brendan/overload9.C: Adjust. * testsuite/g++.old-deja/g++.bugs/900127_01.C: Adjust. * testsuite/g++.old-deja/g++.bugs/900205_04.C: Adjust. * testsuite/g++.old-deja/g++.bugs/900330_02.C: Adjust. * testsuite/g++.old-deja/g++.bugs/900404_03.C: Adjust. * testsuite/g++.old-deja/g++.bugs/900514_03.C: Adjust. * testsuite/g++.old-deja/g++.eh/ctor1.C: Adjust. * testsuite/g++.old-deja/g++.jason/conversion11.C: Adjust. * testsuite/g++.old-deja/g++.jason/crash3.C: Adjust. * testsuite/g++.old-deja/g++.jason/overload16.C: Adjust. * testsuite/g++.old-deja/g++.jason/overload28.C: Adjust. * testsuite/g++.old-deja/g++.jason/scoping10.C: Adjust. * testsuite/g++.old-deja/g++.jason/template30.C: Adjust. * testsuite/g++.old-deja/g++.jason/temporary2.C: Adjust. * testsuite/g++.old-deja/g++.law/arg1.C: Adjust. * testsuite/g++.old-deja/g++.law/arg11.C: Adjust. * testsuite/g++.old-deja/g++.law/arm9.C: Adjust. * testsuite/g++.old-deja/g++.law/ctors11.C: Adjust. * testsuite/g++.old-deja/g++.law/ctors17.C: Adjust. * testsuite/g++.old-deja/g++.law/ctors5.C: Adjust. * testsuite/g++.old-deja/g++.law/ctors9.C: Adjust. * testsuite/g++.old-deja/g++.law/enum4.C: Adjust. * testsuite/g++.old-deja/g++.law/missed-error2.C: Adjust. * testsuite/g++.old-deja/g++.law/operators32.C: Adjust. * testsuite/g++.old-deja/g++.law/operators9.C: Adjust. * testsuite/g++.old-deja/g++.mike/net2.C: Adjust. * testsuite/g++.old-deja/g++.mike/net22.C: Adjust. * testsuite/g++.old-deja/g++.mike/p11110.C: Adjust. * testsuite/g++.old-deja/g++.mike/p1989.C: Adjust. * testsuite/g++.old-deja/g++.mike/p2431.C: Adjust. * testsuite/g++.old-deja/g++.mike/p438.C: Adjust. * testsuite/g++.old-deja/g++.mike/p807a.C: Adjust. * testsuite/g++.old-deja/g++.mike/p9068.C: Adjust. * testsuite/g++.old-deja/g++.niklas/t120.C: Adjust. * testsuite/g++.old-deja/g++.niklas/t121.C: Adjust. * testsuite/g++.old-deja/g++.niklas/t128.C: Adjust. * testsuite/g++.old-deja/g++.ns/overload2.C: Adjust. * testsuite/g++.old-deja/g++.ns/using12.C: Adjust. * testsuite/g++.old-deja/g++.other/crash24.C: Adjust. * testsuite/g++.old-deja/g++.other/expr1.C: Adjust. * testsuite/g++.old-deja/g++.other/overload11.C: Adjust. * testsuite/g++.old-deja/g++.other/pmf3.C: Adjust. * testsuite/g++.old-deja/g++.other/volatile1.C: Adjust. * testsuite/g++.old-deja/g++.pt/auto_ptr.C: Adjust. * testsuite/g++.old-deja/g++.pt/crash28.C: Adjust. * testsuite/g++.old-deja/g++.pt/crash60.C: Adjust. * testsuite/g++.old-deja/g++.pt/explicit38.C: Adjust. * testsuite/g++.old-deja/g++.pt/explicit39.C: Adjust. * testsuite/g++.old-deja/g++.pt/explicit41.C: Adjust. * testsuite/g++.old-deja/g++.pt/explicit67.C: Adjust. * testsuite/g++.old-deja/g++.pt/explicit77.C: Adjust. * testsuite/g++.old-deja/g++.pt/expr2.C: Adjust. * testsuite/g++.old-deja/g++.pt/ptrmem10.C: Adjust. * testsuite/g++.old-deja/g++.pt/ptrmem6.C: Adjust. * testsuite/g++.old-deja/g++.pt/spec35.C: Adjust. * testsuite/g++.old-deja/g++.pt/spec5.C: Adjust. * testsuite/g++.old-deja/g++.pt/spec6.C: Adjust. * testsuite/g++.old-deja/g++.pt/t05.C: Adjust. * testsuite/g++.old-deja/g++.pt/t24.C: Adjust. * testsuite/g++.old-deja/g++.pt/unify4.C: Adjust. * testsuite/g++.old-deja/g++.pt/unify6.C: Adjust. * testsuite/g++.old-deja/g++.pt/unify8.C: Adjust. * testsuite/g++.old-deja/g++.robertl/eb109.C: Adjust. * testsuite/g++.old-deja/g++.robertl/eb119.C: Adjust. * testsuite/g++.old-deja/g++.robertl/eb131.C: Adjust. * testsuite/g++.old-deja/g++.robertl/eb22.C: Adjust. * testsuite/g++.old-deja/g++.robertl/eb69.C: Adjust. * testsuite/g++.old-deja/g++.robertl/eb98.C: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167607 138bc75d-0d04-0410-961f-82ee72b054a4
* Enable implicitly declared move constructor/operator= (N3053).jason2010-06-301-37/+37
| | | | | | | | | | | | | | | | | | | | | | gcc/cp/ * class.c (add_implicitly_declared_members): A class with no explicitly declared copy or move constructor gets both declared implicitly, and similarly for operator=. (check_bases): A type with no copy ctor does not inhibit a const copy ctor in a derived class. (check_field_decl): Likewise. (check_bases_and_members): A nonexistent copy ctor/op= is non-trivial. * tree.c (type_has_nontrivial_copy_init): Adjust semantics. (trivially_copyable_p): Likewise. * call.c (convert_like_real): Use type_has_nontrivial_copy_init. * class.c (finish_struct_bits): Likewise. * tree.c (build_target_expr_with_type): Likewise. * typeck2.c (store_init_value): Likewise. libstdc++-v3/ * include/bits/unordered_map.h: Explicitly default copy constructors. * include/bits/unordered_set.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161582 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (convert_class_to_reference): Binding an lvalue to anjason2009-08-011-3/+75
| | | | | | | | | | | | | | | | | | | | rvalue reference is bad. If the user-defined conversion is bad, set bad_p before merging conversions. (maybe_handle_ref_bind): Don't push down bad_p. (reference_binding): Binding an lvalue to an rvalue reference is bad. (convert_like_real): Give a helpful error about binding lvalue to rvalue reference. (reference_related_p): No longer static. * typeck.c (build_typed_address): New. (build_static_cast_1): Add static_cast from lvalue to &&. * cp-tree.h: Adjust. * include/bits/move.h (forward): Implement as in N2835. (move): Implement as in N2831. * include/std/istream (rvalue stream operator>>): New. * include/std/ostream (rvalue stream operator<<): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150327 138bc75d-0d04-0410-961f-82ee72b054a4
* PR testsuite/25241janis2008-09-181-77/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/g++.exp (g++_init): Enable overrides of dg-error, dg-warning for C++ tests. * g++.dg/conversion/ambig1.C: Clean up dg-error/dg-warning; use dg-message for notes. * g++.dg/conversion/simd1.C: Ditto. * g++.dg/conversion/simd3.C: Ditto. * g++.dg/cpp0x/rv2n.C: Ditto. * g++.dg/cpp0x/rv3n.C: Ditto. * g++.dg/cpp0x/rv4n.C: Ditto. * g++.dg/cpp0x/rv5n.C: Ditto. * g++.dg/cpp0x/rv6n.C: Ditto. * g++.dg/cpp0x/rv7n.C: Ditto. * g++.dg/cpp0x/variadic36.C: Ditto. * g++.dg/cpp0x/variadic59.C: Ditto. * g++.dg/cpp0x/variadic71.C: Ditto. * g++.dg/cpp0x/variadic-ex13.C: Ditto. * g++.dg/expr/cond9.C: Ditto. * g++.dg/expr/pmf-1.C: Ditto. * g++.dg/ext/case-range2.C: Ditto. * g++.dg/ext/case-range3.C: Ditto. * g++.dg/ext/is_class_error2.C: Ditto. * g++.dg/ext/label5.C: Ditto. * g++.dg/ext/pr27019.C: Ditto. * g++.dg/gomp/pr26690-1.C: Ditto. * g++.dg/gomp/pr26690-2.C: Ditto. * g++.dg/gomp/pr34694.C: Ditto. * g++.dg/gomp/tpl-parallel-2.C: Ditto. * g++.dg/inherit/base3.C: Ditto. * g++.dg/inherit/using6.C: Ditto. * g++.dg/init/brace6.C: Ditto. * g++.dg/init/ctor4.C: Ditto. * g++.dg/lookup/conv-1.C: Ditto. * g++.dg/lookup/new1.C: Ditto. * g++.dg/lookup/scoped6.C: Ditto. * g++.dg/lookup/using7.C: Ditto. * g++.dg/lookup/using9.C: Ditto. * g++.dg/other/abstract1.C: Ditto. * g++.dg/other/abstract2.C: Ditto. * g++.dg/other/anon5.C: Ditto. * g++.dg/other/crash-4.C: Ditto. * g++.dg/other/error10.C: Ditto. * g++.dg/other/error13.C: Ditto. * g++.dg/other/error20.C: Ditto. * g++.dg/other/error5.C: Ditto. * g++.dg/other/field1.C: Ditto. * g++.dg/other/offsetof5.C: Ditto. * g++.dg/other/semicolon.C: Ditto. * g++.dg/overload/ambig1.C: Ditto. * g++.dg/overload/arg3.C: Ditto. * g++.dg/overload/builtin1.C: Ditto. * g++.dg/overload/copy1.C: Ditto. * g++.dg/overload/new1.C: Ditto. * g++.dg/overload/template4.C: Ditto. * g++.dg/overload/using2.C: Ditto. * g++.dg/parse/bitfield2.C: Ditto. * g++.dg/parse/constant4.C: Ditto. * g++.dg/parse/crash20.C: Ditto. * g++.dg/parse/crash36.C: Ditto. * g++.dg/parse/crash5.C: Ditto. * g++.dg/parse/error11.C: Ditto. * g++.dg/parse/error12.C: Ditto. * g++.dg/parse/error19.C: Ditto. * g++.dg/parse/error28.C: Ditto. * g++.dg/parse/friend5.C: Ditto. * g++.dg/parse/invalid-op1.C: Ditto. * g++.dg/parse/missing-template1.C: Ditto. * g++.dg/parse/non-dependent2.C: Ditto. * g++.dg/parse/ret-type2.C: Ditto. * g++.dg/parse/specialization1.C: Ditto. * g++.dg/parse/template18.C: Ditto. * g++.dg/parse/template3.C: Ditto. * g++.dg/parse/template9.C: Ditto. * g++.dg/tc1/dr108.C: Ditto. * g++.dg/tc1/dr152.C: Ditto. * g++.dg/tc1/dr166.C: Ditto. * g++.dg/template/access11.C: Ditto. * g++.dg/template/access2.C: Ditto. * g++.dg/template/access3.C: Ditto. * g++.dg/template/access7.C: Ditto. * g++.dg/template/copy1.C: Ditto. * g++.dg/template/crash13.C: Ditto. * g++.dg/template/crash37.C: Ditto. * g++.dg/template/crash40.C: Ditto. * g++.dg/template/crash58.C: Ditto. * g++.dg/template/ctor5.C: Ditto. * g++.dg/template/dependent-expr5.C: Ditto. * g++.dg/template/eh2.C: Ditto. * g++.dg/template/error2.C: Ditto. * g++.dg/template/error33.C: Ditto. * g++.dg/template/error4.C: Ditto. * g++.dg/template/friend31.C: Ditto. * g++.dg/template/friend32.C: Ditto. * g++.dg/template/instantiate1.C: Ditto. * g++.dg/template/instantiate3.C: Ditto. * g++.dg/template/instantiate5.C: Ditto. * g++.dg/template/instantiate7.C: Ditto. * g++.dg/template/local6.C: Ditto. * g++.dg/template/lookup2.C: Ditto. * g++.dg/template/member5.C: Ditto. * g++.dg/template/memfriend15.C: Ditto. * g++.dg/template/memfriend16.C: Ditto. * g++.dg/template/memfriend17.C: Ditto. * g++.dg/template/memfriend7.C: Ditto. * g++.dg/template/meminit1.C: Ditto. * g++.dg/template/nested3.C: Ditto. * g++.dg/template/new3.C: Ditto. * g++.dg/template/nontype12.C: Ditto. * g++.dg/template/nontype13.C: Ditto. * g++.dg/template/nontype6.C: Ditto. * g++.dg/template/non-type-template-argument-1.C: Ditto. * g++.dg/template/overload9.C: Ditto. * g++.dg/template/ptrmem15.C: Ditto. * g++.dg/template/ptrmem17.C: Ditto. * g++.dg/template/ptrmem4.C: Ditto. * g++.dg/template/ptrmem6.C: Ditto. * g++.dg/template/ptrmem8.C: Ditto. * g++.dg/template/qualified-id1.C: Ditto. * g++.dg/template/qualttp20.C: Ditto. * g++.dg/template/qualttp3.C: Ditto. * g++.dg/template/qualttp4.C: Ditto. * g++.dg/template/qualttp5.C: Ditto. * g++.dg/template/qualttp6.C: Ditto. * g++.dg/template/qualttp7.C: Ditto. * g++.dg/template/qualttp8.C: Ditto. * g++.dg/template/recurse.C: Ditto. * g++.dg/template/sfinae10.C: Ditto. * g++.dg/template/sfinae3.C: Ditto. * g++.dg/template/spec22.C: Ditto. * g++.dg/template/spec23.C: Ditto. * g++.dg/template/static9.C: Ditto. * g++.dg/template/template-id-2.C: Ditto. * g++.dg/template/typename2.C: Ditto. * g++.dg/template/typename4.C: Ditto. * g++.dg/template/using14.C: Ditto. * g++.dg/template/using2.C: Ditto. * g++.dg/template/warn1.C: Ditto. * g++.dg/warn/incomplete1.C: Ditto. * g++.dg/warn/noeffect2.C: Ditto. * g++.dg/warn/noeffect4.C: Ditto. * g++.dg/warn/pr8570.C: Ditto. * g++.dg/warn/Wparentheses-13.C: Ditto. * g++.dg/warn/Wparentheses-15.C: Ditto. * g++.dg/warn/Wparentheses-16.C: Ditto. * g++.dg/warn/Wparentheses-17.C: Ditto. * g++.dg/warn/Wparentheses-18.C: Ditto. * g++.dg/warn/Wparentheses-19.C: Ditto. * g++.dg/warn/Wparentheses-20.C: Ditto. * g++.dg/warn/Wparentheses-23.C: Ditto. * g++.dg/warn/Wstrict-aliasing-3.C: Ditto. * g++.old-deja/g++.benjamin/15799.C: Ditto. * g++.old-deja/g++.benjamin/15800-1.C: Ditto. * g++.old-deja/g++.benjamin/16077.C: Ditto. * g++.old-deja/g++.bob/inherit2.C: Ditto. * g++.old-deja/g++.brendan/ambiguity1.C: Ditto. * g++.old-deja/g++.brendan/crash29.C: Ditto. * g++.old-deja/g++.brendan/crash48.C: Ditto. * g++.old-deja/g++.brendan/crash56.C: Ditto. * g++.old-deja/g++.brendan/cvt3.C: Ditto. * g++.old-deja/g++.brendan/overload1.C: Ditto. * g++.old-deja/g++.brendan/overload4.C: Ditto. * g++.old-deja/g++.brendan/overload9.C: Ditto. * g++.old-deja/g++.bugs/900127_01.C: Ditto. * g++.old-deja/g++.bugs/900205_04.C: Ditto. * g++.old-deja/g++.bugs/900330_02.C: Ditto. * g++.old-deja/g++.bugs/900404_03.C: Ditto. * g++.old-deja/g++.bugs/900514_03.C: Ditto. * g++.old-deja/g++.eh/ctor1.C: Ditto. * g++.old-deja/g++.eh/spec6.C: Ditto. * g++.old-deja/g++.ext/overload1.C: Ditto. * g++.old-deja/g++.jason/conversion11.C: Ditto. * g++.old-deja/g++.jason/crash3.C: Ditto. * g++.old-deja/g++.jason/lineno3.C: Ditto. * g++.old-deja/g++.jason/lineno4.C: Ditto. * g++.old-deja/g++.jason/opeq3.C: Ditto. * g++.old-deja/g++.jason/overload16.C: Ditto. * g++.old-deja/g++.jason/overload28.C: Ditto. * g++.old-deja/g++.jason/pmf5.C: Ditto. * g++.old-deja/g++.jason/scoping10.C: Ditto. * g++.old-deja/g++.jason/template30.C: Ditto. * g++.old-deja/g++.jason/temporary2.C: Ditto. * g++.old-deja/g++.jason/tredecl4.C: Ditto. * g++.old-deja/g++.law/arg11.C: Ditto. * g++.old-deja/g++.law/arg1.C: Ditto. * g++.old-deja/g++.law/arm9.C: Ditto. * g++.old-deja/g++.law/ctors11.C: Ditto. * g++.old-deja/g++.law/ctors17.C: Ditto. * g++.old-deja/g++.law/ctors5.C: Ditto. * g++.old-deja/g++.law/ctors9.C: Ditto. * g++.old-deja/g++.law/enum4.C: Ditto. * g++.old-deja/g++.law/missed-error2.C: Ditto. * g++.old-deja/g++.law/operators9.C: Ditto. * g++.old-deja/g++.mike/net22.C: Ditto. * g++.old-deja/g++.mike/net2.C: Ditto. * g++.old-deja/g++.mike/p11110.C: Ditto. * g++.old-deja/g++.mike/p1989.C: Ditto. * g++.old-deja/g++.mike/p2431.C: Ditto. * g++.old-deja/g++.mike/p438.C: Ditto. * g++.old-deja/g++.mike/p807a.C: Ditto. * g++.old-deja/g++.mike/p9068.C: Ditto. * g++.old-deja/g++.niklas/t120.C: Ditto. * g++.old-deja/g++.niklas/t121.C: Ditto. * g++.old-deja/g++.niklas/t128.C: Ditto. * g++.old-deja/g++.ns/overload2.C: Ditto. * g++.old-deja/g++.ns/template13.C: Ditto. * g++.old-deja/g++.ns/using12.C: Ditto. * g++.old-deja/g++.oliva/delete1.C: Ditto. * g++.old-deja/g++.oliva/overload1.C: Ditto. * g++.old-deja/g++.other/crash24.C: Ditto. * g++.old-deja/g++.other/crash25.C: Ditto. * g++.old-deja/g++.other/decl3.C: Ditto. * g++.old-deja/g++.other/expr1.C: Ditto. * g++.old-deja/g++.other/overcnv2.C: Ditto. * g++.old-deja/g++.other/overload11.C: Ditto. * g++.old-deja/g++.other/pmf3.C: Ditto. * g++.old-deja/g++.other/ptrmem7.C: Ditto. * g++.old-deja/g++.other/vaarg3.C: Ditto. * g++.old-deja/g++.other/volatile1.C: Ditto. * g++.old-deja/g++.pt/assign1.C: Ditto. * g++.old-deja/g++.pt/auto_ptr.C: Ditto. * g++.old-deja/g++.pt/const2.C: Ditto. * g++.old-deja/g++.pt/crash10.C: Ditto. * g++.old-deja/g++.pt/crash20.C: Ditto. * g++.old-deja/g++.pt/crash36.C: Ditto. * g++.old-deja/g++.pt/crash38.C: Ditto. * g++.old-deja/g++.pt/derived3.C: Ditto. * g++.old-deja/g++.pt/error2.C: Ditto. * g++.old-deja/g++.pt/explicit34.C: Ditto. * g++.old-deja/g++.pt/explicit70.C: Ditto. * g++.old-deja/g++.pt/friend23.C: Ditto. * g++.old-deja/g++.pt/ptrmem10.C: Ditto. * g++.old-deja/g++.pt/redecl1.C: Ditto. * g++.old-deja/g++.pt/spec35.C: Ditto. * g++.old-deja/g++.pt/t05.C: Ditto. * g++.old-deja/g++.pt/typename3.C: Ditto. * g++.old-deja/g++.pt/typename6.C: Ditto. * g++.old-deja/g++.pt/unify8.C: Ditto. * g++.old-deja/g++.pt/vaarg3.C: Ditto. * g++.old-deja/g++.robertl/eb109.C: Ditto. * g++.old-deja/g++.robertl/eb131.C: Ditto. * g++.old-deja/g++.robertl/eb22.C: Ditto. * g++.old-deja/g++.robertl/eb44.C: Ditto. * g++.old-deja/g++.robertl/eb4.C: Ditto. * g++.old-deja/g++.robertl/eb69.C: Ditto. * g++.dg/parse/constructor1.C: Remove "error" from dg-error, preserving column number. * g++.dg/parse/error10.C: Ditto. * g++.dg/parse/error13.C: Ditto. * g++.dg/parse/error14.C: Ditto. * g++.dg/parse/error15.C: Ditto. * g++.dg/parse/error16.C: Ditto. * g++.dg/parse/error17.C: Ditto. * g++.dg/parse/error18.C: Ditto. * g++.dg/parse/error1.C: Ditto. * g++.dg/parse/error20.C: Ditto. * g++.dg/parse/error21.C: Ditto. * g++.dg/parse/error22.C: Ditto. * g++.dg/parse/error23.C: Ditto. * g++.dg/parse/error24.C: Ditto. * g++.dg/parse/error25.C: Ditto. * g++.dg/parse/error26.C: Ditto. * g++.dg/parse/error27.C: Ditto. * g++.dg/parse/error29.C: Ditto. * g++.dg/parse/error2.C: Ditto. * g++.dg/parse/error30.C: Ditto. * g++.dg/parse/error31.C: Ditto. * g++.dg/parse/error3.C: Ditto. * g++.dg/parse/error4.C: Ditto. * g++.dg/parse/error5.C: Ditto. * g++.dg/parse/error6.C: Ditto. * g++.dg/parse/error7.C: Ditto. * g++.dg/parse/error8.C: Ditto. * g++.dg/parse/error9.C: Ditto. * g++.dg/parse/error-column.C: Ditto. * g++.dg/template/crash80.C: Ditto. * g++.dg/template/friend44.C: Ditto. * g++.dg/warn/pr26785.C: Ditto. * g++.old-deja/g++.brendan/crash16.C: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140476 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-05-30 Russell Yanofsky <russ@yanofsky.org>dgregor2007-05-311-0/+281
Douglas Gregor <doug.gregor@gmail.com> Pedro Lamarao <pedro.lamarao@mndfck.org> Howard Hinnant <howard.hinnant@gmail.com> PR c++/7412 PR c++/29939 * g++.dg/cpp0x/rv8p.C: New. * g++.dg/cpp0x/temp-constructor-bug.C: New. * g++.dg/cpp0x/cast-bug.C: New. * g++.dg/cpp0x/elision_weak.C: New. * g++.dg/cpp0x/collapse-bug.C: New. * g++.dg/cpp0x/rv3p.C: New. * g++.dg/cpp0x/rv7n.C: New. * g++.dg/cpp0x/overload-conv-1.C: New. * g++.dg/cpp0x/rv2n.C: New. * g++.dg/cpp0x/deduce.C: New. * g++.dg/cpp0x/temp-va-arg-bug.C: New. * g++.dg/cpp0x/rv6p.C: New. * g++.dg/cpp0x/template_deduction.C: New. * g++.dg/cpp0x/implicit-copy.C: New. * g++.dg/cpp0x/rv1p.C: New. * g++.dg/cpp0x/cast.C: New. * g++.dg/cpp0x/rv5n.C: New. * g++.dg/cpp0x/collapse.C: New. * g++.dg/cpp0x/overload-conv-2.C: New. * g++.dg/cpp0x/rv4p.C: New. * g++.dg/cpp0x/rvo.C: New. * g++.dg/cpp0x/iop.C: New. * g++.dg/cpp0x/rv3n.C: New. * g++.dg/cpp0x/rv7p.C: New. * g++.dg/cpp0x/reference_collapsing.C: New. * g++.dg/cpp0x/overload.C: New. * g++.dg/cpp0x/named.C: New. * g++.dg/cpp0x/rv2p.C: New. * g++.dg/cpp0x/rv6n.C: New. * g++.dg/cpp0x/not_special.C: New. * g++.dg/cpp0x/bind.C: New. * g++.dg/cpp0x/rv1n.C: New. * g++.dg/cpp0x/rv5p.C: New. * g++.dg/cpp0x/elision.C: New. * g++.dg/cpp0x/named_refs.C: New. * g++.dg/cpp0x/unnamed_refs.C: New. * g++.dg/cpp0x/rv4n.C: New. * g++.dg/cpp0x/elision_neg.C: New. * g++.dg/init/copy7.C: Run in C++98 mode. * g++.dg/overload/arg1.C: Ditto. * g++.dg/overload/arg4.C: Ditto. 2007-05-30 Russell Yanofsky <russ@yanofsky.org> Douglas Gregor <doug.gregor@gmail.com> Pedro Lamarao <pedro.lamarao@mndfck.org> Howard Hinnant <howard.hinnant@gmail.com> PR c++/7412 PR c++/29939 * typeck.c (comptypes): Don't consider rvalue and lvalue reference types to be equivalent. (check_return_expr): Move from certain lvalues when returning them. * decl.c (grokdeclarator): Implement reference collapsing. (copy_fn_p): Don't consider constructors taking rvalue references to be copy constructors. (move_fn_p): New. * call.c (conversion): New "rvaluedness_matches_p" member. (convert_class_to_reference): Require reference type as first parameter instead of base type. (reference_binding): Add logic to handle rvalue references. (implicit_conversion): Update inaccurate comment. (convert_like_real): Disable creation of temporaries that are impossible to initialize for types with move constructors. (build_over_call): Elide move constructors when possible. (maybe_handle_implicit_object): Set "rvaluedness_matches_p". (maybe_handle_ref_bind): Return conversion instead of type node. (compare_ics): Add logic to use "rvaluedness_matches_p" values to determine preferred conversion sequences. * cp-tree.h (TYPE_REF_IS_RVALUE): New. (LOOKUP_PREFER_RVALUE): New. (DECL_MOVE_CONSTRUCTOR_P): New. (struct cp_declarator): Add "reference" member for reference types, with new "rvalue_ref" flag. (cp_build_reference_type): Declare. (move_fn_p): Declare. * error.c (dump_type_prefix): Format rvalue reference types correctly in error messages. * except.c (build_throw): Move from certain lvalues when throwing. * mangle.c (write_type): Mangle rvalue references differently than regular references. * parser.c (make_reference_declarator): Add boolean parameter for rvalue references. (cp_parser_make_indirect_declarator): New. (cp_parser_new_declarator_opt): Call cp_parser_make_indirect_declarator. (cp_parser_conversion_declarator_opt): Ditto. (cp_parser_declarator): Ditto. (cp_parser_ptr_operator): Parse "&&" tokens into rvalue reference declarators. * pt.c (tsubst): Implement reference collapsing. (maybe_adjust_types_for_deduction): Implement special template parameter deduction rule for rvalue references. (type_unification_real): Update calls to maybe_adjust_types_for_deduction. (try_one_overload): Ditto. (unify_pack_expansion): Ditto. * tree.c (lvalue_p_1): Handle rvalue reference types. (cp_build_reference_type): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125211 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud