Commit 1f7586c1 by Richard Stallman

(duplicate_decls): Silently accept harmless mismatch

in type of 1st arg of builtin function.

From-SVN: r3455
parent c0ce409a
...@@ -1317,6 +1317,28 @@ duplicate_decls (newdecl, olddecl) ...@@ -1317,6 +1317,28 @@ duplicate_decls (newdecl, olddecl)
if (types_match) if (types_match)
TREE_TYPE (olddecl) = newtype; TREE_TYPE (olddecl) = newtype;
} }
/* Accept harmless mismatch in first argument type also.
This is for ffs. */
if (TYPE_ARG_TYPES (TREE_TYPE (newdecl)) != 0
&& TYPE_ARG_TYPES (TREE_TYPE (olddecl)) != 0
&& TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (newdecl))) != 0
&& TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (olddecl))) != 0
&& (TYPE_MODE (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (newdecl))))
==
TYPE_MODE (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (olddecl))))))
{
/* Function types may be shared, so we can't just modify
the return type of olddecl's function type. */
tree newtype
= build_function_type (TREE_TYPE (TREE_TYPE (olddecl)),
tree_cons (NULL_TREE,
TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (newdecl))),
TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (olddecl)))));
types_match = comptypes (TREE_TYPE (newdecl), newtype);
if (types_match)
TREE_TYPE (olddecl) = newtype;
}
} }
if (!types_match) if (!types_match)
{ {
......
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