On November 24, 2015 8:29:10 PM GMT+01:00, Bernhard Reutner-Fischer 
<rep.dot....@gmail.com> wrote:
>On November 24, 2015 7:23:40 AM GMT+01:00, Jan Hubicka <hubi...@ucw.cz>
>wrote:
>>Hi,
>
>Doc talks about COMMON, parm is COMMON_OR_EXTERN.
>
>> static int
>>-warn_type_compatibility_p (tree prevailing_type, tree type)
>>+warn_type_compatibility_p (tree prevailing_type, tree type,
>>+                        bool common_or_extern)
>> {
>>   int lev = 0;
>>+  bool odr_p = odr_or_derived_type_p (prevailing_type)
>>+            && odr_or_derived_type_p (type);
>> 
>>-  /* Get complete type.
>>-     ???  We might want to emit a warning here if type qualification
>>-     differences were spotted.  Do not do this unconditionally
>though.
>> */
>>-  type = TYPE_MAIN_VARIANT (type);
>>-  prevailing_type = TYPE_MAIN_VARIANT (prevailing_type);
>>   if (prevailing_type == type)
>>     return 0;
>> 
>>-  bool odr_p = odr_or_derived_type_p (prevailing_type)
>>-            && odr_or_derived_type_p (type);
>>/* C++ provide a robust way to check for type compatibility via the
>ODR
>>      rule.  */
>>   if (odr_p && !odr_types_equivalent_p (prevailing_type, type))
>>-    lev = 2;
>>+    lev |= 2;
>> 
>> /* Function types needs special care, because types_compatible_p
>never
>>      thinks prototype is compatible to non-prototype.  */
>>-  if ((TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) ==
>>METHOD_TYPE)
>>-      && TREE_CODE (type) == TREE_CODE (prevailing_type))
>>+  if (TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) ==
>>METHOD_TYPE)
>>     {
>>+      if (TREE_CODE (type) != TREE_CODE (prevailing_type))
>>+     lev |= 1;
>>       lev |= warn_type_compatibility_p (TREE_TYPE (prevailing_type),
>>-                                     TREE_TYPE (type));
>>-      if (TREE_CODE (type) == METHOD_TYPE)
>>+                                     TREE_TYPE (type), false);
>>+      if (TREE_CODE (type) == METHOD_TYPE
>>+       && TREE_CODE (prevailing_type))
>
>== what?
>
>Do we have warn_unused_result for macros?

respectively that the result of the expansion is supposed to be used in an 
explicit comparison that is.

>Thanks,


Reply via email to