From: Richard Stallman Date: Wed, 1 Jul 1992 02:20:59 +0000 (+0000) Subject: (ALLOCA_FLAGS, ALLOCA_FINISH, AS): Deleted. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4c41bbfa769371a67cae3de8256c8da2b4d02385;p=gcc.git (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 --- diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 2d6d1e2c189..4cd33a07e6a 100644 --- a/gcc/c-decl.c +++ b/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'");