public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c/10426: -O2 messes with ordering of pointer dereferencing
@ 2003-04-17 11:56 jonathan.sambrook
  0 siblings, 0 replies; 2+ messages in thread
From: jonathan.sambrook @ 2003-04-17 11:56 UTC (permalink / raw)
  To: gcc-gnats


>Number:         10426
>Category:       c
>Synopsis:       -O2 messes with ordering of pointer dereferencing
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Apr 17 11:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     jonathan.sambrook@dsvr.co.uk
>Release:        3.2.2 (don't know when from, but after 2.96 which works fine)
>Organization:
>Environment:
Linux 2.4.20
gcc 3.2.2
>Description:
Expected o/p : "abcde", but with -O2 get "bcde":

int main( int argc, char ** argv )
{
  char str[17];
  sprintf( str, "ABCDE" );
  char * p = str;
  for( ;*p ; )
    *p++ = tolower(*p);
  printf( "'%s'\n", str );
  return 0;
}

Yes it's nasty coding; no *I* didn't write it in its wild form :)

[.i file redundant]
>How-To-Repeat:
Works:
  gcc     -o test test.c

Doesn't:
  gcc -O2 -o test test.c
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="gcc_-v_output"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gcc_-v_output"

Z2NjIC12IC1zYXZlLXRlbXBzIC1PMiAtbyB0ZXN0IHRlc3QuYwpSZWFkaW5nIHNwZWNzIGZyb20g
L3Vzci9saWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8zLjIuMi9zcGVjcwpDb25maWd1cmVk
IHdpdGg6IC4uL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0tbWFuZGlyPS91c3Ivc2hhcmUvbWFu
IC0taW5mb2Rpcj0vdXNyL3NoYXJlL2luZm8gLS1lbmFibGUtc2hhcmVkIC0tZW5hYmxlLXRocmVh
ZHM9cG9zaXggLS1kaXNhYmxlLWNoZWNraW5nIC0td2l0aC1zeXN0ZW0temxpYiAtLWVuYWJsZS1f
X2N4YV9hdGV4aXQgLS1ob3N0PWkzODYtcmVkaGF0LWxpbnV4ClRocmVhZCBtb2RlbDogcG9zaXgK
Z2NjIHZlcnNpb24gMy4yLjIgMjAwMzAyMTcgKFJlZCBIYXQgTGludXggOC4wIDMuMi4yLTIpCiAv
dXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzMuMi4yL2NwcDAgLWxhbmctYyAtdiAt
RF9fR05VQ19fPTMgLURfX0dOVUNfTUlOT1JfXz0yIC1EX19HTlVDX1BBVENITEVWRUxfXz0yIC1E
X19HWFhfQUJJX1ZFUlNJT049MTAyIC1EX19FTEZfXyAtRHVuaXggLURfX2dudV9saW51eF9fIC1E
bGludXggLURfX0VMRl9fIC1EX191bml4X18gLURfX2dudV9saW51eF9fIC1EX19saW51eF9fIC1E
X191bml4IC1EX19saW51eCAtQXN5c3RlbT1wb3NpeCAtRF9fT1BUSU1JWkVfXyAtRF9fU1REQ19I
T1NURURfXz0xIC1BY3B1PWkzODYgLUFtYWNoaW5lPWkzODYgLURpMzg2IC1EX19pMzg2IC1EX19p
Mzg2X18gLURfX3R1bmVfaTM4Nl9fIHRlc3QuYyB0ZXN0LmkKR05VIENQUCB2ZXJzaW9uIDMuMi4y
IDIwMDMwMjE3IChSZWQgSGF0IExpbnV4IDguMCAzLjIuMi0yKSAoY3BwbGliKSAoaTM4NiBMaW51
eC9FTEYpCmlnbm9yaW5nIG5vbmV4aXN0ZW50IGRpcmVjdG9yeSAiL3Vzci9pMzg2LXJlZGhhdC1s
aW51eC9pbmNsdWRlIgojaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhlcmU6CiNpbmNsdWRl
IDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKIC91c3IvbG9jYWwvaW5jbHVkZQogL3Vzci9saWIv
Z2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8zLjIuMi9pbmNsdWRlCiAvdXNyL2luY2x1ZGUKRW5k
IG9mIHNlYXJjaCBsaXN0LgogL3Vzci9saWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8zLjIu
Mi9jYzEgLWZwcmVwcm9jZXNzZWQgdGVzdC5pIC1xdWlldCAtZHVtcGJhc2UgdGVzdC5jIC1PMiAt
dmVyc2lvbiAtbyB0ZXN0LnMKR05VIENQUCB2ZXJzaW9uIDMuMi4yIDIwMDMwMjE3IChSZWQgSGF0
IExpbnV4IDguMCAzLjIuMi0yKSAoY3BwbGliKSAoaTM4NiBMaW51eC9FTEYpCkdOVSBDIHZlcnNp
b24gMy4yLjIgMjAwMzAyMTcgKFJlZCBIYXQgTGludXggOC4wIDMuMi4yLTIpIChpMzg2LXJlZGhh
dC1saW51eCkKICAgICAgICBjb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDMuMi4yIDIwMDMwMjE3
IChSZWQgSGF0IExpbnV4IDguMCAzLjIuMi0yKS4KIGFzIC1WIC1ReSAtbyB0ZXN0Lm8gdGVzdC5z
CkdOVSBhc3NlbWJsZXIgdmVyc2lvbiAyLjEzLjkwLjAuMTggKGk2ODYtcmVkaGF0LWxpbnV4KSB1
c2luZyBCRkQgdmVyc2lvbiAyLjEzLjkwLjAuMTggMjAwMzAyMDYKIC91c3IvbGliL2djYy1saWIv
aTM4Ni1yZWRoYXQtbGludXgvMy4yLjIvY29sbGVjdDIgLS1laC1mcmFtZS1oZHIgLW0gZWxmX2kz
ODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXguc28uMiAtbyB0ZXN0IC91c3IvbGliL2dj
Yy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMy4yLjIvLi4vLi4vLi4vY3J0MS5vIC91c3IvbGliL2dj
Yy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMy4yLjIvLi4vLi4vLi4vY3J0aS5vIC91c3IvbGliL2dj
Yy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMy4yLjIvY3J0YmVnaW4ubyAtTC91c3IvbGliL2djYy1s
aWIvaTM4Ni1yZWRoYXQtbGludXgvMy4yLjIgLUwvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0
LWxpbnV4LzMuMi4yLy4uLy4uLy4uIHRlc3QubyAtbGdjYyAtbGdjY19laCAtbGMgLWxnY2MgLWxn
Y2NfZWggL3Vzci9saWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8zLjIuMi9jcnRlbmQubyAv
dXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzMuMi4yLy4uLy4uLy4uL2NydG4ubwo=


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: c/10426: -O2 messes with ordering of pointer dereferencing
@ 2003-04-17 14:24 ebotcazou
  0 siblings, 0 replies; 2+ messages in thread
From: ebotcazou @ 2003-04-17 14:24 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, jonathan.sambrook, nobody

Synopsis: -O2 messes with ordering of pointer dereferencing

State-Changed-From-To: open->closed
State-Changed-By: ebotcazou
State-Changed-When: Thu Apr 17 14:24:48 2003
State-Changed-Why:
    Not a bug. The compiler is allowed to evaluate the side-effect 
    operator in any order in *p++ = tolower(*p).

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10426


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-04-17 14:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-17 11:56 c/10426: -O2 messes with ordering of pointer dereferencing jonathan.sambrook
2003-04-17 14:24 ebotcazou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).