Eric Blake <ebl...@redhat.com> writes: > The original choice of ':obj-' as the prefix for implicit types > made it obvious that we weren't going to clash with any user-defined > names. But now we want to create structs for implicit types.
Why? I know, but the commit message should still give a hint. Perhaps: "to get rid of special cases in the generators"? > We > could transliterate ':' to '_', except that C99 says that a leading > underscore and lower-case letter should be used only for file scope > identifiers, while we would be exposing it in qapi-types.h. So it's Misunderstanding! When the standard says "identifiers that X are reserved for Y use", it reserves these identifiers for itself and the implementation. You shouldn't use them for Y then. Suggest to simply quote the standard instead of interpreting it: ... except that C99 mandates that "identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces" > time to change our naming convention; we can instead use the 'q_' > prefix that we reserved for ourselves back in commit 9fb081e0. As > long as we don't declare 'empty' or 'obj' ticklish, it shouldn't > clash with c_name() prepending 'q_' to the user's ticklish names. Do we really want to rename :empty? We're not going to generate C for it, are we? > Signed-off-by: Eric Blake <ebl...@redhat.com>