* i386.c (i386_valid_type_attribute_p): Return nonzero for mismatched
"stdcall" and "cdecl" attributes.
From-SVN: r23436
+Thu Oct 29 22:30:54 1998 Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
+
+ * i386.c (i386_valid_type_attribute_p): Return nonzero for mismatched
+ "stdcall" and "cdecl" attributes.
+
Thu Oct 29 19:05:17 1998 Jim Wilson <wilson@cygnus.com>
* sched.c (update_flow_info): Add code to ! found_orig_dest case to
int
i386_comp_type_attributes (type1, type2)
- tree type1 ATTRIBUTE_UNUSED;
- tree type2 ATTRIBUTE_UNUSED;
+ tree type1;
+ tree type2;
{
+ /* Check for mismatch of non-default calling convention. */
+ char *rtdstr = TARGET_RTD ? "cdecl" : "stdcall";
+
+ if (TREE_CODE (type1) != FUNCTION_TYPE)
+ return 1;
+
+ /* Check for mismatched return types (cdecl vs stdcall). */
+ if (lookup_attribute (rtdstr, TYPE_ATTRIBUTES (type1))
+ != lookup_attribute (rtdstr, TYPE_ATTRIBUTES (type2)))
+ return 0;
return 1;
}