From: Mark Mitchell Date: Tue, 24 Mar 1998 16:13:09 +0000 (+0000) Subject: tree.c (mapcar): When dealing with a DECL, use it's constant value, if any. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ae16ec5f2c93d51d755ea453b4c4efa5e3557e97;p=gcc.git tree.c (mapcar): When dealing with a DECL, use it's constant value, if any. � * tree.c (mapcar): When dealing with a DECL, use it's constant value, if any. * pt.c (lookup_template_class): Don't mangle the names of template classes whose arguments are unknown. * pt.c (tsubst_expr): Handle GOTO_STMT correctly. From-SVN: r18803 --- diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index dd6d50f6fb9..d23a3cdcc6a 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1473,8 +1473,18 @@ mapcar (t, func) /* Rather than aborting, return error_mark_node. This allows us to report a sensible error message on code like this: - void g() { int i; f(7); } */ - return error_mark_node; + void g() { int i; f(7); } + + In a case like: + + void g() { const int i = 7; f(7); } + + however, we must actually return the constant initializer. */ + tmp = decl_constant_value (t); + if (tmp != t) + return mapcar (tmp, func); + else + return error_mark_node; case PARM_DECL: {