With the following line of code: *s++ = toupper(*s); The 3.2.2 gcc increments s before the value is determined on the right side of the equal sign. So what happens is *s gets the value of toupper(*s+1) not toupper(*s) The bug did not occur in version 3.1.1 of gcc. I have not run tests on versions in-between these versions. The gcc version 3.2.2 is the standard one that is included in the Mandrake Linux 9.1 distribution. If a known fix for this is possible by recompiling gcc 3.2.2 or upgrading to a newer gcc please let me know.
Subject: Re: [Bug c/10947] New: ++ postfix operator increments too soon This is a bug in your code, you are violating sequence point rules, you cannot access something that you increment. Use the option -Wsequence-point for a warning about them. -Wsequence-point Warn about possible violations of sequence point rules you can do this instead: {*s = toupper(*s); s++;} Thanks, Andrew Pinski PS can someone close this bug. > With the following line of code: > *s++ = toupper(*s); > The 3.2.2 gcc increments s before the value is determined on the right > side of > the equal sign. So what happens is *s gets the value of toupper(*s+1) > not > toupper(*s) > The bug did not occur in version 3.1.1 of gcc. I have not run tests > on versions > in-between these versions. The gcc version 3.2.2 is the standard one > that is > included in the Mandrake Linux 9.1 distribution. If a known fix for > this is > possible by recompiling gcc 3.2.2 or upgrading to a newer gcc please > let me know.
See Andrew comment. Not a bug.
confirmed invalid
Reopening to mark as a duplicate of...
.
...PR 11751 *** This bug has been marked as a duplicate of 11751 ***