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)