[cfe-commits] [PATCH] Suppress elided variadic macro argument diagnostic with comma pasting extension

Richard Smith richard at metafoo.co.uk
Mon Nov 12 17:58:05 PST 2012


On Mon, Nov 12, 2012 at 5:44 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Mon, Nov 12, 2012 at 5:34 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>> On Mon, Nov 12, 2012 at 4:38 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
>>> On Mon, Nov 12, 2012 at 3:49 PM, Richard Smith <richard at metafoo.co.uk> wrote:
>>>> As an alternative, could we disable the comma-pasting diagnostic for a
>>>> macro with any parameters?
>>>
>>> If I'm following what you're asking correctly, the standard requires
>>> us to diagnose the following:
>>>
>>> #define A(a, ...) f(a, ## __VA_ARGS__)
>>> void f(int,int,int);
>>> void g() {
>>>   A(1,2,3);
>>> }
>>>
>>> because without the comma pasting extension, we would try to form a token ",2".
>>
>> Sorry, I meant to say, disable the comma-pasting diagnostic for a
>> macro with any parameters, where no arguments have been provided for
>> the ellipsis (that is, in exactly those cases where we will have
>> already produced the 'no arguments provided for ellipsis' diagnostic).
>
> Hmm... that would eliminate the duplicate diagnostic, but the
> diagnostic we would get would point at the use instead of the
> definition.  (Having the diagnostic point at the definition is useful
> so it can be suppressed at the definition.)

OK, that makes sense.



More information about the cfe-commits mailing list