This is the mail archive of the gcc-patches@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 MEMs in statement expressions and functions inlined as trees


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


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