aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>1999-09-17 18:25:54 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>1999-09-17 18:25:54 +0000
commitb5534c655352c24f2a2cf7ed2bac09a439e3b938 (patch)
tree18928a896124572e991cfbcba635910e6d944307
parent963d5758117f80dd060942bc405609c22f13860f (diff)
downloadgcc-b5534c655352c24f2a2cf7ed2bac09a439e3b938.zip
gcc-b5534c655352c24f2a2cf7ed2bac09a439e3b938.tar.gz
gcc-b5534c655352c24f2a2cf7ed2bac09a439e3b938.tar.bz2
Revert call.c 1.173 change, do same effect, but more obviously.
* call.c (perform_implicit_conversion): Deal with error_mark_node. From-SVN: r29478
-rw-r--r--gcc/cp/ChangeLog8
-rw-r--r--gcc/cp/call.c11
2 files changed, 11 insertions, 8 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ae81e8a..4bffedb 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+1999-09-17 Nathan Sidwell <nathan@acm.org>
+
+ * call.c (perform_implicit_conversion): Deal with error_mark_node.
+
1999-09-17 Mark Mitchell <mark@codesourcery.com>
* decl.c (warn_extern_redeclared_static): Don't get confused by
@@ -7,10 +11,6 @@
* decl.c (expand_static_init): Make sure assignments to local
statics actually occur.
-1999-09-17 Nathan Sidwell <nathan@acm.org>
-
- * call.c (perform_implicit_conversion): Deal with error_mark_node.
-
1999-09-17 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (poplevel_class): Declare.
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 809c457..8cbc9dd 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -5126,12 +5126,15 @@ perform_implicit_conversion (type, expr)
tree type;
tree expr;
{
- tree conv = implicit_conversion (type, TREE_TYPE (expr), expr,
- LOOKUP_NORMAL);
+ tree conv;
+
+ if (expr == error_mark_node)
+ return error_mark_node;
+ conv = implicit_conversion (type, TREE_TYPE (expr), expr,
+ LOOKUP_NORMAL);
if (!conv || ICS_BAD_FLAG (conv))
{
- if (expr != error_mark_node)
- cp_error ("could not convert `%E' to `%T'", expr, type);
+ cp_error ("could not convert `%E' to `%T'", expr, type);
return error_mark_node;
}