https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61339
--- Comment #9 from Martin Sebor <msebor at gcc dot gnu.org> --- The warning I prototyped is meant to help enforce the GCC coding convention to "use the struct keyword for plain old data (POD) types." Depending on how strictly the sentence is interpreted the warning would detect a smaller or bigger subset of the -Wmismatched-tags instances. If the word "use" is meant "in definitions use" the set would be smaller; if it's meant "in declarations use" then the warning would actually detect a superset of -Wmismatched-tags instances. The convention doesn't seem to speak to template classes that are POD only if instantiated on POD types.