(duplicate_decls): Silently accept harmless mismatch
in type of 1st arg of builtin function. From-SVN: r3455
This commit is contained in:
parent
c0ce409ada
commit
1f7586c124
22
gcc/c-decl.c
22
gcc/c-decl.c
@ -1313,6 +1313,28 @@ duplicate_decls (newdecl, olddecl)
|
||||
= build_function_type (newreturntype,
|
||||
TYPE_ARG_TYPES (TREE_TYPE (olddecl)));
|
||||
|
||||
types_match = comptypes (TREE_TYPE (newdecl), newtype);
|
||||
if (types_match)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user