On 11/01/16 20:48, Jason Merrill wrote:
>>>>>>           else if ((DECL_EXTERN_C_P (newdecl)
>>>>>>                     && DECL_EXTERN_C_P (olddecl))
>>>>>>                    || compparms (TYPE_ARG_TYPES (TREE_TYPE (newdecl)),
>>>>>>                                  TYPE_ARG_TYPES (TREE_TYPE (olddecl))))
>>>
>>> So I was thinking to drop the "else" and the compparms test.
>>
>> Yes.  But then we must somehow avoid:
>>
>>            else
>>              /* Discard the old built-in function.  */
>>              return NULL_TREE;
>>
>> It maybe easier, just to copy the warning to the DECL_ANTICIPATED case?
>
> Or even move it there; removing the existing warning doesn't change
> anything in the testsuite, and I'm having trouble imagining how to
> trigger it.
>

Nice.  It must be something, which does not anticipate a declaration.

like:

cat test.cc
int __builtin_abort(void*);

g++ -c test.cc
test.cc:1:5: warning: new declaration 'int __builtin_abort(void*)' 
ambiguates built-in declaration 'void __builtin_abort()'
  int __builtin_abort(void*);
      ^~~~~~~~~~~~~~~

Intersting, the warning comes even though I forgot to add the
extern "C".


Bernd.

Reply via email to