From ae16ec5f2c93d51d755ea453b4c4efa5e3557e97 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 24 Mar 1998 16:13:09 +0000 Subject: [PATCH] tree.c (mapcar): When dealing with a DECL, use it's constant value, if any. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit � * 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 --- gcc/cp/tree.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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: { -- 2.30.2