8af2fec40b
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 * 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. From-SVN: r125211 |
||
---|---|---|
.. | ||
ada/acats | ||
config | ||
g++.dg | ||
g++.old-deja | ||
gcc.c-torture | ||
gcc.dg | ||
gcc.misc-tests | ||
gcc.target | ||
gcc.test-framework | ||
gfortran.dg | ||
gfortran.fortran-torture | ||
gnat.dg | ||
lib | ||
obj-c++.dg | ||
objc | ||
objc.dg | ||
treelang | ||
ChangeLog | ||
ChangeLog.tree-ssa | ||
README | ||
README.QMTEST | ||
README.compat | ||
README.gcc |
README
This is a collection of tests for GCC. For further information about the C testsuite, see README.gcc. The driver that runs this testsuite is called DejaGnu and you will need a current DejaGnu snapshot, which is available from ftp://gcc.gnu.org/pub/gcc/infrastructure, for example. These tests are included "as is". If any of them fails, do not report a bug. Bug reports for DejaGnu can go to bug-dejagnu@gnu.org. Discussion and comments about this testsuite should be sent to gcc@gcc.gnu.org; additions and changes to should go to sent to gcc-patches@gcc.gnu.org. The entire testsuite is invoked by `make check` at the top level of the GCC tree. `make check-g++` runs the C++ testsuite only. STRUCTURE OF THE G++ TESTSUITE g++.dg tests: All new tests should be placed in an appropriate subdirectory of g++.dg. g++.old-deja tests: g++.benjamin Tests by Benjamin Koz g++.bob g++.brendan Tests by Brendan Kehoe g++.bugs g++.eh Tests for exception handling g++.ext Tests for g++ extensions g++.gb Tests by Gerald Baumgartner g++.jason Tests by Jason Merill g++.jeff Tests by Jeffrey A Law g++.martin Tests by Martin v. Löwis g++.mike Tests by Mike Stump g++.niklas Tests by Niklas Hallqvist g++.ns Tests for namespaces g++.other g++.pt Tests for templates g++.rfg g++.robertl Tests from gcc-bugs@gcc.gnu.org, gathered by Robert Lipe Finally, some random last minute notes by Mike Stump <mrs@cygnus.com>, on how to run tests (in the GCC 2.7 era): runtest --tool g++ --srcdir ./testsuite where runtest Is the name used to invoke DejaGnu. If DejaGnu is not install this will be the relative path name for runtest. --tool This tells DejaGnu which tool you are testing. It is mainly used to find the testsuite directories for a particular tool when several testsuites are in the same directory. (like the gcc and g++ testsuites) --srcdir This points to the top level of the directory containing the sources of the testsuite. This is ./testsuite if you are in the directory that has the testsuite directory.