c: Revert C2x changes to function type compatibility
authorJoseph Myers <joseph@codesourcery.com>
Wed, 9 Mar 2022 22:51:23 +0000 (22:51 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 9 Mar 2022 22:51:23 +0000 (22:51 +0000)
commit4ea128d5c740e4e8c2e7b70de3a90435035eb863
tree5356ddd0d816b830310838a30c3ec5d359d93899
parent22015e77d3e45306077396b9de8a8a28bb67fb20
c: Revert C2x changes to function type compatibility

In commit cc806126215c3f4dc187eff3bf923458d8cc6b4f, I implemented
changes that C2x had made to compatibility of unprototyped and
prototyped function types.

C2x has since completely removed unprototyped function types, making
() in a function declaration mean (void) as in C++.  While that change
isn't appropriate at the current development stage for GCC 12, it does
mean that it doesn't make sense for GCC 12 to have different rules for
unprototyped functions in C2x mode than in other modes or previous and
subsequent GCC versions.  Thus, revert the previous change to avoid it
getting into a GCC release, and update the corresponding tests to
expect the same behavior with -std=c2x as with -std=c11 (they will of
course need to change again after implementing () as meaning (void)).

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc/c/
* c-typeck.cc (function_types_compatible_p): Do not handle C2X
differently from earlier standards for unprototyped function type
compatibility.

gcc/testsuite/
* gcc.dg/c11-unproto-1.c, gcc.dg/c11-unproto-2.c: Update comments.
* gcc.dg/c2x-unproto-1.c, gcc.dg/c2x-unproto-2.c: Expect same
results as in C11 mode.  Update comments.
gcc/c/c-typeck.cc
gcc/testsuite/gcc.dg/c11-unproto-1.c
gcc/testsuite/gcc.dg/c11-unproto-2.c
gcc/testsuite/gcc.dg/c2x-unproto-1.c
gcc/testsuite/gcc.dg/c2x-unproto-2.c