This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Volatile MEMs in statement expressions and functions inlined as trees
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Linus Torvalds <torvalds at transmeta dot com>
- Cc: Gabriel Dos Reis <gdr at codesourcery dot com>, Richard Henderson <rth at redhat dot com>, <gcc-patches at gcc dot gnu dot org>
- Date: 14 Dec 2001 18:40:36 -0200
- Subject: Re: Volatile MEMs in statement expressions and functions inlined as trees
- Organization: GCC Team, Red Hat
- References: <Pine.LNX.4.33.0112141207270.2957-100000@penguin.transmeta.com>
On Dec 14, 2001, Linus Torvalds <torvalds@transmeta.com> wrote:
> And you should realize that assignments are the _only_ things that have an
> a-priori rvalue. Everything else gets its rvalue from some other source
> (result of a function call, dereference of a variable, immediate,
> whatever), so there really aren't any other gray areas.
Hmm... How do you add class assignment operators into this picture?
Consider:
class foo {
int i;
foo& operator=(const foo& op) { i = op.i; }
volatile foo& operator=(const volatile foo& op) volatile {
// how do you implement this so as to avoid reading again
// from op.i in a chain of assignments?
}
};
volatile foo p, q, r;
p = q = r;
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me