[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Suspicious warning in W64 build

From: Paul Eggert
Subject: Re: Suspicious warning in W64 build
Date: Mon, 18 Sep 2017 10:35:13 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

Eli Zaretskii wrote:
It expands into an assignment, so it's an assignment.

UNINIT does not expand into an assignment. Sometime it expands into nothing. At other times it expands into '=' followed by an initializer. Neither is an assignment. And either way, the user of UNINIT is not supposed to care what UNINIT expands into; that's an implementation detail. From the user's point of view, UNINIT is a declarator attribute.

There are lots more syntactically-incorrect macros other than the UNINIT and the ATTRIBUTE_* ones. They include DECLARE_POINTER_ALIAS, FALLTHROUGH, INLINE, FOR_EACH_TAIL, and the list goes on and on. I agree that we should avoid such constructs if possible, but each of these constructs is useful and is unavoidably outside the usual C syntax. UNINIT is similar.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]