aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2003-03-13 16:39:38 -0500
committerJason Merrill <jason@gcc.gnu.org>2003-03-13 16:39:38 -0500
commit0171b21c32016b8397c8cdbc793904b4163e7573 (patch)
treedddf13ebd2bb68fb674c933e1ce0f2778324f96a
parent45707d3120b9f91076bf8ab60a60fa094f2eb7b5 (diff)
downloadgcc-0171b21c32016b8397c8cdbc793904b4163e7573.zip
gcc-0171b21c32016b8397c8cdbc793904b4163e7573.tar.gz
gcc-0171b21c32016b8397c8cdbc793904b4163e7573.tar.bz2
re PR c++/9420 (incomplete type incorrectly reported)
PR c++/9420 * search.c (lookup_conversions): Call complete_type here. * call.c (implicit_conversion): Not here. From-SVN: r64332
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/call.c5
-rw-r--r--gcc/cp/search.c4
3 files changed, 8 insertions, 7 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 2916688..539ad19 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2003-03-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/9420
+ * search.c (lookup_conversions): Call complete_type here.
+ * call.c (implicit_conversion): Not here.
+
2003-03-13 Mark Mitchell <mark@codesourcery.com>
* decl2.c (do_nonmember_using_decl): Correct handling of
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index d6496ad..9ed804b 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -1305,11 +1305,6 @@ implicit_conversion (tree to, tree from, tree expr, int flags)
|| expr == error_mark_node)
return NULL_TREE;
- /* Make sure both the FROM and TO types are complete so that
- user-defined conversions are available. */
- complete_type (from);
- complete_type (to);
-
if (TREE_CODE (to) == REFERENCE_TYPE)
conv = reference_binding (to, from, expr, flags);
else
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 3d23766..7cc1fa1 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -2271,8 +2271,8 @@ lookup_conversions (tree type)
tree t;
tree conversions = NULL_TREE;
- if (COMPLETE_TYPE_P (type))
- bfs_walk (TYPE_BINFO (type), add_conversions, 0, &conversions);
+ complete_type (type);
+ bfs_walk (TYPE_BINFO (type), add_conversions, 0, &conversions);
for (t = conversions; t; t = TREE_CHAIN (t))
IDENTIFIER_MARKED (DECL_NAME (OVL_CURRENT (TREE_VALUE (t)))) = 0;