Commit 6c6ed0ef by Jason Merrill Committed by Jason Merrill

* call.c (equal_functions): Also call decls_match for extern "C" fns.

From-SVN: r37024
parent 57dd137f
2000-10-23 Jason Merrill <jason@redhat.com>
* call.c (equal_functions): Also call decls_match for extern "C" fns.
2000-10-22 Jason Merrill <jason@redhat.com>
* call.c (build_conditional_expr): Use ocp_convert to force
rvalue conversion.
2000-10-22 Mark Mitchell <mark@codesourcery.com>
* call.c (standard_conversion): Use RVALUE_CONVs for all
......
......@@ -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;
}
......
// Test that two extern "C" declarations of the same name in different
// namespaces are treated as declaring the same function.
namespace foo {
extern "C" int f ();
}
extern "C" int f () { return 0; }
using namespace foo;
int main ()
{
f ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment