(ALLOCA_FLAGS, ALLOCA_FINISH, AS): Deleted.
(INSTALL): Deleted. (duplicate_decls): If newdecl for builtin function has same return mode as the builtin, keep the builtin but use newdecl's return type. From-SVN: r1366
This commit is contained in:
parent
7212eb4442
commit
4c41bbfa76
13
gcc/c-decl.c
13
gcc/c-decl.c
@ -1204,6 +1204,19 @@ duplicate_decls (newdecl, olddecl)
|
||||
return 0;
|
||||
}
|
||||
else if (!types_match)
|
||||
{
|
||||
/* Accept the return type of the new declaration if same modes. */
|
||||
tree oldreturntype = TREE_TYPE (TREE_TYPE (olddecl));
|
||||
tree newreturntype = TREE_TYPE (TREE_TYPE (newdecl));
|
||||
if (TYPE_MODE (oldreturntype) == TYPE_MODE (newreturntype))
|
||||
{
|
||||
TREE_TYPE (TREE_TYPE (olddecl)) = newreturntype;
|
||||
types_match = comptypes (TREE_TYPE (newdecl), TREE_TYPE (olddecl));
|
||||
if (!types_match)
|
||||
TREE_TYPE (TREE_TYPE (olddecl)) = oldreturntype;
|
||||
}
|
||||
}
|
||||
if (!types_match)
|
||||
{
|
||||
/* If types don't match for a built-in, throw away the built-in. */
|
||||
warning_with_decl (newdecl, "conflicting types for built-in function `%s'");
|
||||
|
Loading…
Reference in New Issue
Block a user