public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c++/8291: optimzation creates errors in "unsigned short" pointer usage
@ 2002-10-19 22:46 emt3734
  0 siblings, 0 replies; 2+ messages in thread
From: emt3734 @ 2002-10-19 22:46 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8291
>Category:       c++
>Synopsis:       optimzation creates errors in "unsigned short" pointer usage
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Oct 19 22:46:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     emt3734@rit.edu
>Release:        3.2
>Organization:
>Environment:
gentoo linux 1.4rc1
>Description:
I have attached an example of the problem.  Basically, I am casting a unsigned long pointer(expected 32-bits) to an unsigned short pointer (expected 16-bits) and dereferencing the new pointer an either 1 or 0 to get the high or low 16-bits of the 32-bit value. with optimizations set to -O1 or lower this works as expected, however, with -O2 or higher, it gives me incorrect result.  I suspect that the optimizer is promoting my "16-bit" pointer to a 32-bit one because 16-bit instructions are slower in x86 platforms.  But this is incorrect in my context, the program should technically function the same between optimization settings.

Attached is a short source file with comments duplicating the problem.

#gcc -dumpversion
3.2
>How-To-Repeat:
if compiled with: 
gcc -O1 bug.c -save-temps -o bug
the output is:
12345678 =? 1234

if compiled with:
gcc -O2 bug.c -save-temps -o bug
the output is:
12345678 =? 4014
>Fix:
lower optimization flags to -O1 or less
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.tgz"

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
fdu3fds3aP8A5HLNiAB4AAA=


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

* Re: c++/8291: optimzation creates errors in "unsigned short" pointer usage
@ 2002-10-20  2:29 nathan
  0 siblings, 0 replies; 2+ messages in thread
From: nathan @ 2002-10-20  2:29 UTC (permalink / raw)
  To: emt3734, gcc-bugs, gcc-prs, nobody

Synopsis: optimzation creates errors in "unsigned short" pointer usage

State-Changed-From-To: open->closed
State-Changed-By: nathan
State-Changed-When: Sun Oct 20 02:29:06 2002
State-Changed-Why:
    not a bug. you are breaking the type based aliasing rules.
    look for -fstrict-aliasing in the manual

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


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

end of thread, other threads:[~2002-10-20  9:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-19 22:46 c++/8291: optimzation creates errors in "unsigned short" pointer usage emt3734
2002-10-20  2:29 nathan

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).