[Bug libfortran/24902] COMPLEX_ASSIGN is wrong

gdr at integrable-solutions dot net gcc-bugzilla@gcc.gnu.org
Wed Nov 16 20:24:00 GMT 2005



------- Comment #5 from gdr at integrable-solutions dot net  2005-11-16 20:24 -------
Subject: Re:  COMPLEX_ASSIGN is wrong

"pinskia at physics dot uc dot edu" <gcc-bugzilla@gcc.gnu.org> writes:

| Subject: Re:  COMPLEX_ASSIGN is wrong
| 
| > yields an lvalue.  do whatever you want in the *middle end*, but be
| > sure you don't transmute that basic semantics constraint.
| 
| Gaby, it also prevents a huge amount of optimizations so what is
| the difference from saying it is wrong?

You're putting optimization before semantics; -that- is wrong.  I'm
not interested in the fastest program if it does not meet my needs.
If __imag__ z yields a modifiable lvalue, then it follows, by ordinary
language rules that it can be used on the left hand side of built-in
"=".  In C, the resulting expresion is an rvalue; in C++ it is an
lvalue.  No amount of bizarre extension should break those simple
rules.  

| The issue comes down to what does
| __imag__ a = b; really means.

No, it comes down to what "__imag__ a" means.

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24902



More information about the Gcc-bugs mailing list