diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2021-09-25 12:03:55 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2021-09-28 10:24:49 +0200 |
commit | 2892e2caa89f927062824ca901562d085a76d619 (patch) | |
tree | 5f0d111c6e3960e7df30edc1ce4cf0095cf1b224 /arm/Machregsaux.mli | |
parent | 627ab2dbe51decddff281d986367d0790643dd40 (diff) | |
download | compcert-2892e2caa89f927062824ca901562d085a76d619.tar.gz compcert-2892e2caa89f927062824ca901562d085a76d619.zip |
Ignore unnamed plain members of structs and unions
E.g. `struct { int; int x; };`. The `int;` declaration provides no name,
is not a bit field, and is not a C11 anonymous struct/union member.
Such declarations are not allowed by the C99 grammar, even though GCC,
Clang and CompCert tolerate them. The C11 grammar allows these
declarations but the standard text gives them no meaning.
CompCert used to warn about such declarations, yet include them in the
struct or union as unnamed members, similar to an unnamed bit field.
This is incorrect and inconsistent with what GCC and Clang do.
With this commit, CompCert still warns, then ignores the declaration
and does not create an unnamed member. This is consistent with GCC
and Clang.
Fixes: #411
Diffstat (limited to 'arm/Machregsaux.mli')
0 files changed, 0 insertions, 0 deletions