https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49928

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Or to put it another way, the premise of this bug:

   Only workaround for "-Wundef" is "defined(Macro) && Macro"

is false. There are other workarounds.

Another one is to get rid of the "clever" PLATFORM(QT) macros and just write
the tests out in full:

#if (defined(WTF_PLATFORM_MAC) && WTF_PLATFORM_MAC) \
  || (defined(WTF_PLATFORM_QT) && WTF_PLATFORM_QT \
      && defined(WTF_USE_QTKIT) && WTF_USE_QTKIT)


Another one is to use the fact the macro is defined as the condition, and not
have a two-part condition (defined *and* non-zero):

#if defined(WTF_PLATFORM_MAC) \
  || (defined(WTF_PLATFORM_QT) && defined(WTF_USE_QTKIT))


The problem is the idiom used in the WebKit code, and adding a new builtin is
not the right solution to that problem. A new builtin wouldn't help for older
compilers anyway.

Reply via email to