• E
    build: silence stupid gcc warning on STREQ_NULLABLE · 8d8527de
    Eric Blake 提交于
    Our existing STRNEQ_NULLABLE() triggered a warning in gcc 4.7 when
    used with a literal NULL argument:
    
    qemumonitorjsontest.c: In function 'testQemuMonitorJSONGetMachines':
    qemumonitorjsontest.c:289:5: error: null argument where non-null required (argument 1) [-Werror=nonnull]
    
    even though the strcmp is provably dead when a null argument is
    present.  Squelch the warning by refactoring things so that gcc
    never sees strcmp() called with NULL arguments (we still compare
    NULL as not equal to "", this rewrite merely aids gcc).
    
    Next, gcc has a valid warning about a literal NULLSTR(NULL):
    
    qemumonitorjsontest.c:289:5: error: invalid application of 'sizeof' to a void type [-Werror=pointer-arith]
    
    Of course, you'd never write NULLSTR(NULL) directly, but it is
    handy to use through macros.  But the entire part about verify_true()
    is unnecessary - gcc already warns about type mismatch with ?:,
    without needing to make it more complex.
    
    * src/internal.h (STREQ_NULLABLE, STRNEQ_NULLABLE): Avoid gcc 4.7
    stupidity.
    (NULLSTR): Simplify, to allow passing compile-time constants.
    8d8527de
internal.h 12.8 KB