diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-07 07:02:02 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-07 07:02:02 +0000 |
commit | 00ba6bd5de83c3562c4025148519fd7b8bf7c27a (patch) | |
tree | 9fb76bbd4262b032899b2cd77f6653508a644d54 /gcc/cp/cp-tree.def | |
parent | 26e29fcf401b867e9b32f8b74c641b6bb15e5e4d (diff) | |
download | gcc-00ba6bd5de83c3562c4025148519fd7b8bf7c27a.tar.gz |
* call.c (merge_conversion_sequences): New function.
(build_conv): Set ICS_USER_FLAG for USER_CONVs.
(convert_class_to_reference): Correct handling of second
standard conversion sequence in a user-defined conversion
sequence.
(build_user_type_conversion_1): Use merge_conversion_sequences.
* cp-tree.def: Add comments for CONV nodes.
* g++.dg/init/ref3.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63930 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/cp-tree.def')
-rw-r--r-- | gcc/cp/cp-tree.def | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def index f621844e350..86103c41eef 100644 --- a/gcc/cp/cp-tree.def +++ b/gcc/cp/cp-tree.def @@ -1,8 +1,8 @@ /* This file contains the definitions and documentation for the additional tree codes used in the GNU C++ compiler (see tree.def for the standard codes). - Copyright (C) 1987, 1988, 1990, 1993, 1997, 1998, - 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1990, 1993, 1997, 1998, 2003, + 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -270,7 +270,13 @@ DEFTREECODE (MUST_NOT_THROW_EXPR, "must_not_throw_expr", 'e', 1) DEFTREECODE (TAG_DEFN, "tag_defn", 'e', 0) -/* And some codes for expressing conversions for overload resolution. */ +/* The following codes are used to represent implicit conversion + sequences, in the sense of [over.best.ics]. The conversion + sequences are connected through their first operands, with the + first conversion to be performed at the end of the chain. + + The innermost conversion (i.e, the one at the end of the chain) is + always an IDENTITY_CONV, corresponding to the identity conversion. */ DEFTREECODE (IDENTITY_CONV, "identity_conv", 'e', 1) DEFTREECODE (LVALUE_CONV, "lvalue_conv", 'e', 1) |