mirror of
https://github.com/cc65/cc65.git
synced 2024-12-27 00:29:31 +00:00
1e4d1b4311
Ensured check on parameter lists without types in non-definition declarations.
33 lines
932 B
C
33 lines
932 B
C
/* Bug #2302 - Parameters of function types not parsed correctly */
|
|
|
|
#include <stdio.h>
|
|
|
|
typedef int A;
|
|
int zoo(A ()); /* OK: int zoo(int (*)()) */
|
|
int zoo(A (())); /* OK: int zoo(int ((*)())) aka. int zoo(int (*)()) */
|
|
int zoo(A (A)); /* OK: int zoo(int (*)(int)) */
|
|
int zoo(A ((A))); /* OK: int zoo(int ((*)(int))) aka. int zoo(int (*)(int)) */
|
|
int zoo(A A(A)); /* OK: int zoo(int (*A)(int)) */
|
|
int zoo(A (*)(A)); /* OK: int zoo(int (*)(int)) */
|
|
int zoo(A (*A)(A)); /* OK: int zoo(int (*A)(int)) */
|
|
int zoo(A ((*A))(A)); /* OK: int zoo(int (*A)(int)) */
|
|
int zoo(A ((((*((fp))))(A A)))) /* OK: int zoo(int (*fp)(int A)) */
|
|
{
|
|
return fp(42);
|
|
}
|
|
|
|
int bar(int a)
|
|
{
|
|
return a ^ 42;
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
int a = zoo((int (*)())bar);
|
|
if (a != 0)
|
|
{
|
|
printf("failed: a = %d\n", a);
|
|
}
|
|
return a;
|
|
}
|