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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.

Reduced as much as I could:

#define _VA_FEATURE_DETECT__3RD_ARG(_placeholder_1, _placeholder_2, value, ...)
value

#      define _VA_FEATURE_OPT_DISAPPEARS 1
#      define _VA_FEATURE_OPT_DISAPPEARS__VA_OPT__(_placeholder) 0
#      define _VA_FEATURE_OPT_DETECT_UNEXPANDED(...)
_VA_FEATURE_OPT_DISAPPEARS##__VA_OPT__(foo)
#      define _VA_FEATURE_OPT_DETECT_VERIFY_2_ARGS_TEST_ZERO(_placeholder_1,
_placeholder_2) \
        _VA_FEATURE_OPT_DETECT_UNEXPANDED()
#      define _VA_FEATURE_OPT_DETECT_1_OR_2_ARGS(_placeholder, ...) \
        _VA_FEATURE_DETECT__3RD_ARG(__VA_ARGS__, \
                                   
_VA_FEATURE_OPT_DETECT_VERIFY_2_ARGS_TEST_ZERO, \
                                    0)
#      define _VA_FEATURE_OPT_DETECT_1_ARG(...) \
        _VA_FEATURE_OPT_DETECT_1_OR_2_ARGS(bar, __VA_OPT__(, ))(__VA_OPT__(, ))
#      define _VA_FEATURE_OPT_DETECT_SUPPORTED _VA_FEATURE_OPT_DETECT_1_ARG(?)

#      if _VA_FEATURE_OPT_DETECT_SUPPORTED
#      endif

Reply via email to