================
@@ -102,8 +102,9 @@ int __attribute__((target_version("sha2"))) combine(void) { 
return 1; }
 // expected-error@+1 {{multiversioned function declaration has a different 
calling convention}}
 int __attribute__((aarch64_vector_pcs, target_version("sha3"))) combine(void) 
{ return 2; }
 
-int __attribute__((target_version("fp+aes+pmull+rcpc"))) unspec_args() { 
return -1; }
+int unspec_args();
 // expected-error@-1 {{multiversioned function must have a prototype}}
----------------
labrinea wrote:

The C99 standards says
"A function prototype is a declaration of a function that declares the types of 
its parameters".
"An identifier list in a function declarator that is not part of a definition 
of that function shall be empty."
"After adjustment, the parameters in a parameter type list in a function 
declarator that is part of a definition of that function shall not have 
incomplete type."
"A parameter type list specifies the types of, and may declare identifiers for, 
the parameters of the function."
"The special case of an unnamed parameter of type void as the only item in the 
list specifies that the function has no parameters."
"An identifier list declares only the identifiers of the parameters of the 
function. An empty list in a function declarator that is part of a definition 
of that function specifies that the function has no parameters. **The empty 
list in a function declarator that is not part of a definition of that function 
specifies that no information about the number or types of the parameters is 
supplied**".

In our case the declarator is part of a definition as far as I understand.

The latest C standard I found says
"For a function declarator without a parameter type list: the effect is as if 
it were declared with a parameter type list consisting of the keyword void. A 
function declarator provides a prototype for the function."

So perhaps we don't want to diagnose this case at all. Anyhow I don't think 
such a change should be part of this patch.

https://github.com/llvm/llvm-project/pull/96628
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to