From: Mark Mitchell Date: Fri, 9 Oct 1998 10:32:01 +0000 (+0000) Subject: cvt.c (ocp_convert): Avoid infinite recursion caused by 1998-10-03 change. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=953360c8154de41a68df71e5476557a0154ed1fb;p=gcc.git cvt.c (ocp_convert): Avoid infinite recursion caused by 1998-10-03 change. * cvt.c (ocp_convert): Avoid infinite recursion caused by 1998-10-03 change. From-SVN: r22958 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7ef415c822e..b781ad1afa9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +1998-10-09 Mark Mitchell + + * cvt.c (ocp_convert): Avoid infinite recursion caused by + 1998-10-03 change. + 1998-10-08 Jason Merrill * pt.c (resolve_overloaded_unification): New fn. diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index f2b41d80b14..50c4fc59b33 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -679,12 +679,12 @@ ocp_convert (type, expr, convtype, flags) /* The call to fold will not always remove the NOP_EXPR as might be expected, since if one of the types is a typedef; the comparsion in fold is just equality of pointers, not a - call to comptypes. */ - ; + call to comptypes. We don't call fold in this case because + that can result in infinite recursion; fold will call + convert, which will call ocp_convert, etc. */ + return e; else - e = build1 (NOP_EXPR, type, e); - - return fold (e); + return fold (build1 (NOP_EXPR, type, e)); } if (code == VOID_TYPE && (convtype & CONV_STATIC))