Joseph Myers
authored
One failure with a -std=gnu23 default that indicates a quality-of-implementation regression in C23 mode is gcc.dg/pr39084.c, which loses the expected "originally defined here" message on struct redefinition errors (which occur in a different place in the front end for C23 because it is necessary to see the members of the struct to determine whether the redefinition is valid). That message seems a good thing to have both in and out of C23 mode, so add logic to restore it in the C23 case. Bootstrapped with no regressions for x86-64-pc-linux-gnu. gcc/c/ * c-decl.cc (c_struct_parse_info): Add member refloc. (start_struct): Store refloc in struct_parse_info. (finish_struct): Give "originally defined" message for C23 struct redefinition errors. gcc/testsuite/ * gcc.dg/gnu17-tag-1.c, gcc.dg/gnu23-tag-5.c: New tests.
Name | Last commit | Last update |
---|