From mboxrd@z Thu Jan 1 00:00:00 1970 From: chris@achaea.com To: gcc-gnats@gcc.gnu.org Subject: c/3345: incorrect order of evaluation of + operator Date: Thu, 21 Jun 2001 11:56:00 -0000 Message-id: <20010621185456.9178.qmail@sourceware.cygnus.com> X-SW-Source: 2001-06/msg00916.html List-Id: >Number: 3345 >Category: c >Synopsis: incorrect order of evaluation of + operator >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Thu Jun 21 11:56:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: chris@achaea.com >Release: gcc >= 2.96 >Organization: >Environment: >Description: When you have a function that returns a (different) value when called, it can't be placed in an expression like this: a = -foo() + foo(); without the call on the right being evaluated first which is contrary to the left to right order of the addition operator. >How-To-Repeat: In the statement: int a; a = -foo() + foo(); when foo returns a different value each time (say 1 and 2 respectively) the order of evaluation changes the value of the expression. This only seems to happen when calling the same routine. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="blah.i.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="blah.i.gz" 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 YL5fJsdIAAA=