From dc3799c144c415ccf0dbdee1b6695fb64ac9e842 Mon Sep 17 00:00:00 2001 From: Kriang Lerdsuwanakij Date: Wed, 17 Jan 2001 05:59:51 +0000 Subject: [PATCH] typeck.c (build_function_call_real): Call fold on the CALL_EXPR. * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. * call.c (build_over_call): Add comment. From-SVN: r39084 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/call.c | 4 +++- gcc/cp/typeck.c | 7 ++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e013065e390..a3d376ba00a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-01-16 Kriang Lerdsuwanakij + + * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. + * call.c (build_over_call): Add comment. + 2001-01-16 Daniel Berlin * cvt.c (ocp_convert): Handle vector type conversion diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 5f12f7efe20..e3613ee7265 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -1,6 +1,6 @@ /* Functions related to invoking methods and overloaded functions. Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) and modified by Brendan Kehoe (brendan@cygnus.com). @@ -4261,6 +4261,8 @@ build_over_call (cand, args, flags) return exp; } + /* Some built-in function calls will be evaluated at + compile-time in fold (). */ fn = fold (build_call (fn, converted_args)); if (VOID_TYPE_P (TREE_TYPE (fn))) return fn; diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 6a05ef9dd65..fafa55e8790 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -1,6 +1,6 @@ /* Build expressions with type checking for C++ compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2001 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -3075,8 +3075,9 @@ build_function_call_real (function, params, require_complete, flags) return result; } - /* C++ */ - result = build_call (function, coerced_params); + /* Some built-in function calls will be evaluated at + compile-time in fold (). */ + result = fold (build_call (function, coerced_params)); value_type = TREE_TYPE (result); if (require_complete)