From: Paul Schlie <schlie@comcast.net>
To: Dale Johannesen <dalej@apple.com>,
Nathan Sidwell <nathan@codesourcery.com>,
Mike Stump <mrs@apple.com>, <gcc@gcc.gnu.org>
Subject: Re: volatile semantics
Date: Fri, 06 May 2005 05:06:00 -0000 [thread overview]
Message-ID: <BEA05296.A0ED%schlie@comcast.net> (raw)
> Dale Johannesen writes:
>> Nathan Sidwell wrote:
>> Also, I wonder about the following example
>>
>> int const avail = <something>
>>
>> int main() {
>> while (*(int *)&avail == Foo ())
>> do_something();
>> return 0;
>> }
>>
>> Seeing through the const-stripping cast is a useful optimization.
>
> It is? Why would somebody write that?
- It shouldn't mater, GCC should simply treat the outermost cast as the
effective definition of the qualified access path and type of the object
referenced within this context. Although it seems very reasonable that a
cast or parameter specification which results in any qualification being
dropped, minimally produces a warning, just in case the dropping of the
qualifier wasn't intended, as simply dropping a const qualifier for
example does not warrant that object referenced is actually physically
writable; i.e. for example a static const object may literally be stored
in ROM, just as array/string, or structure literals may be; just as
correspondingly dropping an objects volatile qualifier no longer warrants
that it's logical reference will result in a physically access.
>> A further pathelogical case would be,
>>
>> int main() {
>> while (*(int *)(volatile int *)&avail)
>> do_something ();
>> return 0;
>> }
>>
>> What should this do, treat the volatile qualifier as sticky?
>
> IMO, no, but surely we don't have to worry about this one. Either way
> is standard conformant and the user's intent is far from clear, so whatever
> we do should be OK.
- As above, the object should likely be simply references as if an (int *),
nothing more nothing less. With a warning that the const qualifier was
dropped upon a cast to (volatile int *), and that volatile was dropped
upon it's final cast to (int *).
next reply other threads:[~2005-05-06 3:11 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-06 5:06 Paul Schlie [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-07-23 2:15 Paul Schlie
2005-07-23 9:50 ` Geoff Keating
2005-07-23 11:39 ` Paul Schlie
2005-07-23 11:44 ` Paul Schlie
2005-07-19 17:56 Paul Schlie
2005-07-19 18:13 ` Gabriel Dos Reis
2005-07-19 18:32 ` Paul Schlie
2005-07-18 1:29 Paul Schlie
2005-07-18 6:36 ` Gabriel Dos Reis
2005-07-18 11:20 ` Paul Schlie
2005-07-18 12:12 ` Paolo Bonzini
2005-07-18 12:17 ` Paul Schlie
2005-07-18 12:27 ` Gabriel Dos Reis
2005-07-18 13:27 ` Paul Schlie
2005-07-18 15:47 ` D. Hugh Redelmeier
2005-07-18 12:24 ` Gabriel Dos Reis
2005-07-18 12:11 ` Jonathan Wakely
2005-07-18 12:31 ` Paul Schlie
2005-07-17 17:58 Paul Schlie
2005-05-03 8:41 Mike Stump
2005-05-03 8:52 ` Paolo Bonzini
2005-05-03 9:53 ` Giovanni Bajo
2005-05-03 14:31 ` Dave Korn
2005-05-03 14:41 ` Nathan Sidwell
2005-05-03 17:04 ` Dale Johannesen
2005-05-03 18:03 ` Nathan Sidwell
2005-05-03 18:32 ` Paul Koning
2005-05-03 18:37 ` Dale Johannesen
2005-05-11 23:01 ` Geoffrey Keating
2005-05-12 14:46 ` Paul Koning
2005-05-03 18:35 ` Dale Johannesen
2005-05-03 18:54 ` Nathan Sidwell
2005-05-03 19:25 ` Dale Johannesen
2005-05-04 8:18 ` Nathan Sidwell
2005-05-04 10:23 ` Andrew Haley
2005-05-04 11:30 ` Gabriel Dos Reis
2005-05-04 17:59 ` Dale Johannesen
2005-05-04 18:01 ` Paul Koning
2005-05-04 19:49 ` Nathan Sidwell
2005-07-16 16:51 ` D. Hugh Redelmeier
2005-07-16 16:56 ` Daniel Berlin
2005-07-16 17:26 ` Nathan Sidwell
2005-07-16 17:32 ` Daniel Berlin
2005-07-16 18:35 ` Nathan Sidwell
2005-07-16 20:35 ` Daniel Berlin
2005-07-16 21:29 ` Gabriel Dos Reis
2005-07-16 21:41 ` Daniel Berlin
2005-07-16 21:59 ` Gabriel Dos Reis
2005-07-16 21:07 ` Gabriel Dos Reis
2005-07-16 19:20 ` D. Hugh Redelmeier
2005-07-16 21:10 ` Gabriel Dos Reis
2005-07-16 20:52 ` Gabriel Dos Reis
2005-07-16 21:07 ` Daniel Berlin
2005-07-16 21:24 ` Gabriel Dos Reis
2005-07-16 21:30 ` Daniel Berlin
2005-07-16 22:19 ` Gabriel Dos Reis
2005-07-16 21:36 ` Daniel Berlin
2005-07-16 22:06 ` Gabriel Dos Reis
2005-07-16 22:17 ` Daniel Berlin
2005-07-16 22:25 ` Gabriel Dos Reis
2005-07-19 7:27 ` Kai Henningsen
2005-07-19 9:25 ` Gabriel Dos Reis
2005-07-16 22:34 ` D. Hugh Redelmeier
2005-07-16 22:57 ` Gabriel Dos Reis
2005-07-17 1:37 ` D. Hugh Redelmeier
2005-07-17 2:24 ` Gabriel Dos Reis
2005-07-17 2:36 ` Daniel Berlin
2005-07-17 3:08 ` Gabriel Dos Reis
2005-07-17 4:32 ` Michael Veksler
2005-07-17 5:19 ` Michael Veksler
2005-07-17 5:31 ` Gabriel Dos Reis
2005-07-17 7:33 ` Michael Veksler
2005-07-17 14:33 ` Daniel Berlin
2005-07-17 15:30 ` Michael Veksler
2005-07-17 7:53 ` Andrew Pinski
2005-07-17 11:41 ` Gabriel Dos Reis
2005-07-17 7:40 ` D. Hugh Redelmeier
2005-07-17 11:50 ` Gabriel Dos Reis
2005-07-18 19:30 ` Mike Stump
2005-07-18 20:05 ` Gabriel Dos Reis
2005-07-17 15:45 ` Richard Henderson
2005-07-17 16:04 ` Nathan Sidwell
2005-07-17 16:18 ` Richard Henderson
2005-07-17 16:54 ` Gabriel Dos Reis
2005-07-17 16:06 ` Falk Hueffner
2005-07-17 16:18 ` Ian Lance Taylor
2005-07-17 16:44 ` Richard Henderson
2005-07-17 12:49 ` Joseph S. Myers
2005-07-17 2:27 ` Daniel Berlin
2005-07-17 3:14 ` Gabriel Dos Reis
2005-07-17 3:27 ` Daniel Berlin
2005-07-17 20:34 ` Mark Mitchell
2005-07-17 4:38 ` D. Hugh Redelmeier
2005-07-17 5:27 ` Gabriel Dos Reis
2005-07-18 13:13 ` Gerald Pfeifer
2005-07-17 7:54 ` D. Hugh Redelmeier
2005-07-17 10:11 ` Andrew Haley
2005-07-17 12:03 ` Gabriel Dos Reis
2005-07-16 17:33 ` Andrew Haley
2005-07-16 17:53 ` Daniel Berlin
2005-07-17 8:25 ` Ian Lance Taylor
2005-07-22 23:20 ` Geoffrey Keating
2005-07-22 23:33 ` Ian Lance Taylor
2005-07-23 1:28 ` Geoff Keating
2005-07-23 2:59 ` Gabriel Dos Reis
2005-07-23 9:50 ` Geoff Keating
2005-07-23 6:03 ` Ian Lance Taylor
2005-07-23 16:03 ` Mike Stump
2005-07-16 19:05 ` Dale Johannesen
2005-07-16 21:17 ` Gabriel Dos Reis
2005-07-22 23:20 ` Geoffrey Keating
2005-07-25 23:08 ` Olivier Galibert
2005-05-06 0:45 ` Kai Henningsen
2005-05-06 1:42 ` Paul Koning
2005-05-06 2:04 ` Gabriel Dos Reis
2005-05-06 2:57 ` Dale Johannesen
2005-05-03 21:19 ` Thorsten Glaser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BEA05296.A0ED%schlie@comcast.net \
--to=schlie@comcast.net \
--cc=dalej@apple.com \
--cc=gcc@gcc.gnu.org \
--cc=mrs@apple.com \
--cc=nathan@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).