• E
    qapi: Fix c_name() munging · c43567c1
    Eric Blake 提交于
    The method c_name() is supposed to do two different actions: munge
    '-' into '_', and add a 'q_' prefix to ticklish names.  But it did
    these steps out of order, making it possible to submit input that
    is not ticklish until after munging, where the output then lacked
    the desired prefix.
    
    The failure is exposed easily if you have a compiler that recognizes
    C11 keywords, and try to name a member '_Thread-local', as it would
    result in trying to compile the declaration 'uint64_t _Thread_local;'
    which is not valid.  However, this name violates our conventions
    (ultimately, want to enforce that no qapi names start with single
    underscore), so the test is slightly weaker by instead testing
    'wchar-t'; the declaration 'uint64_t wchar_t;' is valid in C (where
    wchar_t is only a typedef) but would fail with a C++ compiler (where
    it is a keyword).
    
    Fix things by reversing the order of actions within c_name().
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Message-Id: <1447836791-369-18-git-send-email-eblake@redhat.com>
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    c43567c1
qapi-schema-test.json 6.2 KB