aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/call.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2000-10-23 17:38:33 -0400
committerJason Merrill <jason@gcc.gnu.org>2000-10-23 17:38:33 -0400
commit6c6ed0ef928235a51966759aa3d6ca6cb960f334 (patch)
tree57169762c729b022aea2e99d12e99240487ac88e /gcc/cp/call.c
parent57dd137ffb7556e2cbd6e3db18e495a8521e52fb (diff)
downloadgcc-6c6ed0ef928235a51966759aa3d6ca6cb960f334.zip
gcc-6c6ed0ef928235a51966759aa3d6ca6cb960f334.tar.gz
gcc-6c6ed0ef928235a51966759aa3d6ca6cb960f334.tar.bz2
* call.c (equal_functions): Also call decls_match for extern "C" fns.
From-SVN: r37024
Diffstat (limited to 'gcc/cp/call.c')
-rw-r--r--gcc/cp/call.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index c31333e..ba77b64 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -4931,14 +4931,16 @@ add_warning (winner, loser)
}
/* Returns true iff functions are equivalent. Equivalent functions are
- not identical only if one is a function-local extern function. */
+ not '==' only if one is a function-local extern function or if
+ both are extern "C". */
static inline int
equal_functions (fn1, fn2)
tree fn1;
tree fn2;
{
- if (DECL_LOCAL_FUNCTION_P (fn1) || DECL_LOCAL_FUNCTION_P (fn2))
+ if (DECL_LOCAL_FUNCTION_P (fn1) || DECL_LOCAL_FUNCTION_P (fn2)
+ || DECL_EXTERN_C_FUNCTION_P (fn1))
return decls_match (fn1, fn2);
return fn1 == fn2;
}