call.c (NEED_TEMPORARY_P): New macro.
authorMark Mitchell <mark@codesourcery.com>
Fri, 23 Jul 1999 01:01:16 +0000 (01:01 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 23 Jul 1999 01:01:16 +0000 (01:01 +0000)
commit27b8d0cd535f663df34c8264ee48e3034a663c38
tree7ab5ead2d1ccd9e6e12bd7904bc7fecc99b3fe43
parentac1d97ceb67feea6e4e37e14a8bc86c5851574c3
call.c (NEED_TEMPORARY_P): New macro.

* call.c (NEED_TEMPORARY_P): New macro.
(standard_conversion): Set it, for derived-to-base conversions.
(reference_related_p): New function.
(reference_compatible_p): Likewise.
(convert_class_to_reference): Likewise.
(direct_reference_binding): Likewise.
(reference_binding): Rework for standards-compliance.
(convert_like): Adjust accordingly.
(maybe_handle_ref_bind): Simplify; the right conversion sequences
are now built up in reference_binding.
(initialize_reference): New function.
* cp-tree.h (ICS_USER_FLAG): Document.
(ICS_THIS_FLAG): Likewise.
(ICS_BAD_FLAG): Likewise.
(NEED_TEMPORARY_P): Likewise.
(cp_lvalue_kind): New type.
(real_lvalue_p): Return it.
* error.c (dump_expr): Provide more accurate representation for
AGGR_INIT_EXPRs.
* init.c (expand_default_init): Do not try to perform implicit
conversions for a brace-enclosed initializer.
* search.c (lookup_conversions): Document.
* tree.c (lvalue_p_1): Return a cp_lvalue_kind.  Calculate
appropriately.
(real_lvalue_p): Adjust accordingly.
(lvalue_p): Likewise.
(build_cplus_new): Don't allow the creation of an abstract class.
* typeck.c (convert_for_initialization): Use initialize_reference.

From-SVN: r28221
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/error.c
gcc/cp/init.c
gcc/cp/search.c
gcc/cp/tree.c
gcc/cp/typeck.c
gcc/testsuite/g++.old-deja/g++.other/bitfld1.C
gcc/testsuite/g++.old-deja/g++.robertl/eb76.C