This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH 1/3] add -Wstruct-not-pod, -Wclass-is-pod, -Wmismatched-tags (PR 61339)
On 7/8/19 3:58 PM, Martin Sebor wrote:
The attached patch implements three new warnings:
* -Wstruct-not-pod triggers for struct definitions that are not
* -Wclass-is-pod triggers for class definitions that satisfy
the requirements on POD structs, and
* -Wmismatched-tags that triggers for class and struct declarations
with class-key that doesn't match either their definition or
the first declaration (if no definition is provided).
The implementation of -Wclass-is-pod and -Wstruct-not-pod is fairly
straightforward but the -Wmismatched-tags solution is slightly unusual.
It collects struct and class declarations first and diagnoses mismatches
only after the whole tramslation unit has been processed. This is so
that the definition of a class can guide which declarations to diagnose
no matter which come first.