This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: volatile [was: GCC warnings for unused global variables]


On 04-May-2003, Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
> Fergus Henderson <fjh@cs.mu.OZ.AU> writes:
> | On 04-May-2003, Michael Eager <eager@eagercon.com> wrote:
> | > I don't believe there is any requirement that static variables are
> | > first set to zero and then set their initial value.
> | 
> | C++98 8.5 [dcl.init] paragraph 6: "The memory occupied by any object
> | of static storage duration shall be zero-initialized at program startup
> | before any other initialization takes place.".
> 
> Which is different from your earlier claim that the *object* is
> zero-initialized. 

Are you claiming here a distinction between the object itself and
the memory (or storage) occupied by the object?

According to C++98 1.8 paragraph 1, "An object _is_ a region of storage."
(my emphasis).  If there is some reason why it is important to make a
distinction between the two here, I don't see it.

> | > They can be
> | > created with the initialized value, if that can be calculated at
> | > compile time (e.g., if there is no constructor).
> | 
> | That is true for non-volatile variables, but only because the compiler
> | can apply the as-if rule.  As discussed earlier in this thread, the
> | as-if rule does not apply to volatile variables -- the standard prohibits
> | implementations from optimizing away accesses to volatile variables.
> 
> You keep repeating this false assertion:  Quotes have been to specific
> text where the standard does actually permit such optimization.

I'm afraid we'll have to disagree on that point.
I do not agree that the text which you quoted permitted such optimization.
I believe you were misinterpreting that text.

-- 
Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]