Andrew Dunstan wrote:
> >> Further research shows that C89 explicitly dropped support for the old
> >> K&R "=-" operator, so we probably *should* remove this in case it
> >> introduces an unintended bug.
> > Well, the point is if someone does use that, it isn't going to generate
> > a pgindent error, but rather produce incorrect C code because =- is
> > going to be changed.  FYI, my gcc 2.95.3 allows =- and does work as
> > intended.
> >
> 
> As intended by whom? If the effect of "x=4; x =- 1;" is to subtract 1 
> from x then that's simply wrong by C89. It should assign -1 to x. The 
> "=-" must be parsed as two operators in C89, assignment and unary minus. 
> pgindent should not under any circumstances change the semantics of the 
> program being indented, and that's what this transformation does for 
> compilers conforming to the standard we explicitly follow.
> 
> What happens when your ancient gcc is told to apply the ansi standard?

I see now that my test wasn't complete.  You are right it assigns -1 so
we can remove this from pgupgrade.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to