This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC warnings for unused global variables
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: <tm_gccmail at mail dot kloo dot net>
- Cc: Fergus Henderson <fjh at cs dot mu dot OZ dot AU>, Richard Henderson <rth at redhat dot com>, Geoff Keating <geoffk at geoffk dot org>, jbuck at synopsys dot com, espie at quatramaran dot ens dot fr, gcc at gcc dot gnu dot org
- Date: 02 May 2003 22:27:20 +0200
- Subject: Re: GCC warnings for unused global variables
- Organization: Integrable Solutions
- References: <Pine.LNX.4.21.0305021400270.15957-100000@mail.kloo.net>
<tm_gccmail@mail.kloo.net> writes:
| On 2 May 2003, Gabriel Dos Reis wrote:
|
| > Fergus Henderson <fjh@cs.mu.OZ.AU> writes:
| >
| > | On 02-May-2003, Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
| > | > prj@po.cwru.edu (Paul Jarc) writes:
| > | >
| > | > | Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
| > | > | > Fergus Henderson <fjh@cs.mu.OZ.AU> writes:
| > | > | >| I don't think the committee ever intended to allow implementations
| > | > | >| to optimize away volatile variables,
| > | > | >
| > | > | > Why not? The C standard clearly says:
| > | > | >
| > | > | > [#3] In the abstract machine, all expressions are evaluated
| > | > | > as specified by the semantics. An actual implementation
| > | > | > need not evaluate part of an expression if it can deduce
| > | > | > that its value is not used and that no needed side effects
| > | > ^^^^^^^^^
| > | > | > are produced (including any caused by calling a function or
| > | > | > accessing a volatile object).
| > ^^^^^^^^^^^^^^^^^^^^^^^^^^^
| >
| > | > |
| > | > | Accessing a volatile object includes writing, and writing includes
| > | > | initializing. So the initialization cannot be optimized out.
| > | >
| > | > Why? the last part of the paragraph quoted above does specifically
| > | > permit that optimization where applicable.
| > |
| > | In the case of accesses to volatile objects, it is never applicable.
| >
| > Even when the standard writes it? Hugh.
|
| Seemingly meaningless read/writes from/to volatile variables usually have
The discussion was not about "seemingly meaningless read/writes".
Please to not confuse the matter further.
-- Gaby