This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
target/3850: gcc 2.73-3.0 code generation on HP and SUN WRONG
- To: gcc-gnats at gcc dot gnu dot org
- Subject: target/3850: gcc 2.73-3.0 code generation on HP and SUN WRONG
- From: daniel at innologic-systems dot com
- Date: 27 Jul 2001 21:31:14 -0000
- Reply-To: daniel at innologic-systems dot com
>Number: 3850
>Category: target
>Synopsis: gcc 2.73-3.0 code generation on HP and SUN WRONG
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: unassigned
>State: open
>Class: wrong-code
>Submitter-Id: net
>Arrival-Date: Fri Jul 27 14:36:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Daniel Sittig
>Release: unknown-1.0
>Organization:
>Environment:
On HP: HPUX 10.20, PA85000
ON SUN: Solaris 2.6, UII
>Description:
The code generation for example printf function call
is wrong: ( it is not printf specific ! )
int a;
printf("a=%d a=%d", (a=1,a), (a=2,a));
The expected output shall be : a=1 a=2
But this works only on a x86 , both UII and HP PA fails.
I was dissassembling it and found that ALL Gcc we have
create ONE memory reference for variable 'a'.
I was doublechecking with HP 'cc' and it created correctly
2 memory references thus displaying the expected result.
Linux is applying a 'pushd' before loading '2' to %eax.
This also works and the example above works correctly.
>How-To-Repeat:
gcc mini.c -g
gdb a.out
disassemble
>Fix:
No fix known.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="mini.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="mini.c"
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKaW50IG1haW4oKQp7CiAgLy8gaW50IGE7CiAgdm9sYXRpbGUg
aW50IGE7CiAgcHJpbnRmKCJhPSVkIGE9JWRcbiIsIChhPTEsYSksIChhPTIsYSkpOwogIHJldHVy
biAwOwp9CgovKgoKU1VOOiAgZ2NjMi45NS4xCgoweDEwYTU0IDxtYWluPjogc2F2ZSAgJXNwLCAt
MTIwLCAlc3AKMHgxMGE1OCA8bWFpbis0PjogICAgICAgbW92ICAxLCAlbzAKMHgxMGE1YyA8bWFp
bis4PjogICAgICAgc3QgICVvMCwgWyAlZnAgKyAtMjAgXQoweDEwYTYwIDxtYWluKzEyPjogICAg
ICBtb3YgIDIsICVvMAoweDEwYTY0IDxtYWluKzE2PjogICAgICBzdCAgJW8wLCBbICVmcCArIC0y
MCBdCjB4MTBhNjggPG1haW4rMjA+OiAgICAgIHNldGhpICAlaGkoMHgxMTQwMCksICVvMQoweDEw
YTZjIDxtYWluKzI0PjogICAgICBvciAgJW8xLCAweDFlOCwgJW8wICAgICAhIDB4MTE1ZTggPF9s
aWJfdmVyc2lvbis4PgoweDEwYTcwIDxtYWluKzI4PjogICAgICBsZCAgWyAlZnAgKyAtMjAgXSwg
JW8xCjB4MTBhNzQgPG1haW4rMzI+OiAgICAgIGxkICBbICVmcCArIC0yMCBdLCAlbzIKMHgxMGE3
OCA8bWFpbiszNj46ICAgICAgY2FsbCAgMHgyMTY3OCA8cHJpbnRmPgoweDEwYTdjIDxtYWluKzQw
PjogICAgICBub3AgCjB4MTBhODAgPG1haW4rNDQ+OiAgICAgIGNsciAgJWkwICAgICAgICAhIDB4
MAoweDEwYTg0IDxtYWluKzQ4PjogICAgICBiICAweDEwYThjIDxtYWluKzU2PgoweDEwYTg4IDxt
YWluKzUyPjogICAgICBub3AgCjB4MTBhOGMgPG1haW4rNTY+OiAgICAgIHJldCAKMHgxMGE5MCA8
bWFpbis2MD46ICAgICAgcmVzdG9yZSAKCgpIUCAnY2MnCgo7OzsgICBwcmludGYoImE9JWQgYT0l
ZFxuIiwgKGE9MSxhKSwgKGE9MixhKSk7CjB4MzIyYyA8bWFpbis4PjogICAgICAgIGFkZGlsIEwn
LTB4ODAwLCVkcCwlcjEKMHgzMjMwIDxtYWluKzEyPjogICAgICAgbGRvIDB4NzM4KCVyMSksJXIy
NgoweDMyMzQgPG1haW4rMTY+OiAgICAgICBsZGkgMSwlcjEKMHgzMjM4IDxtYWluKzIwPjogICAg
ICAgc3R3ICVyMSwtMHgzOCglc3ApCjB4MzIzYyA8bWFpbisyND46ICAgICAgIGxkdyAtMHgzOCgl
c3ApLCVyMjUKMHgzMjQwIDxtYWluKzI4PjogICAgICAgbGRpIDIsJXIzMQoweDMyNDQgPG1haW4r
MzI+OiAgICAgICBzdHcgJXIzMSwtMHgzOCglc3ApCjB4MzI0OCA8bWFpbiszNj46ICAgICAgIGxk
dyAtMHgzOCglc3ApLCVyMjQKMHgzMjRjIDxtYWluKzQwPjogICAgICAgbGRpbCBMJzB4MzAwMCwl
cjMxCjB4MzI1MCA8bWFpbis0ND46ICAgICAgIGJlLGwgMHgyMTQoJXNyNCwlcjMxKSwlc3IwLCVy
MzEKMHgzMjU0IDxtYWluKzQ4PjogICAgICAgY29weSAlcjMxLCVycAo7OzsgICByZXR1cm4gMDsK
CgpIUCAnZ2NjMi45NS4xJwoKOzs7ICAgcHJpbnRmKCJhPSVkIGE9JWRcbiIsIChhPTEsYSksIChh
PTIsYSkpOwoweDMyZjAgPG1haW4rMjQ+OiAgICAgICBsZGkgMSwlcjE5CjB4MzJmNCA8bWFpbisy
OD46ICAgICAgIHN0dyAlcjE5LDgoJXIzKQoweDMyZjggPG1haW4rMzI+OiAgICAgICBsZGkgMiwl
cjE5CjB4MzJmYyA8bWFpbiszNj46ICAgICAgIHN0dyAlcjE5LDgoJXIzKQoweDMzMDAgPG1haW4r
NDA+OiAgICAgICBsZGlsIEwnMHgyODAwLCVyMTkKMHgzMzA0IDxtYWluKzQ0PjogICAgICAgbGRv
IDB4MmEwKCVyMTkpLCVyMjYKMHgzMzA4IDxtYWluKzQ4PjogICAgICAgbGR3IDgoJXIzKSwlcjI1
CjB4MzMwYyA8bWFpbis1Mj46ICAgICAgIGxkdyA4KCVyMyksJXIyNAoweDMzMTAgPG1haW4rNTY+
OiAgICAgICBiLGwgMHgzMmMwIDxwcmludGY+LCVycAoweDMzMTQgPG1haW4rNjA+OiAgICAgICBu
b3AKOzs7ICAgcmV0dXJuIDA7CgpMSU5VWCAnZ2NjMi45NS4xJwoKMHg4MDQ4NDkwIDxtYWluPjog
ICAgICAgcHVzaGwgICVlYnAKMHg4MDQ4NDkxIDxtYWluKzE+OiAgICAgbW92bCAgICVlc3AsJWVi
cAoweDgwNDg0OTMgPG1haW4rMz46ICAgICBzdWJsICAgJDB4NCwlZXNwCjB4ODA0ODQ5NiA8bWFp
bis2PjogICAgIG1vdmwgICAkMHgyLDB4ZmZmZmZmZmMoJWVicCkKMHg4MDQ4NDlkIDxtYWluKzEz
PjogICAgbW92bCAgIDB4ZmZmZmZmZmMoJWVicCksJWVheAoweDgwNDg0YTAgPG1haW4rMTY+OiAg
ICBwdXNobCAgJWVheAoweDgwNDg0YTEgPG1haW4rMTc+OiAgICBtb3ZsICAgJDB4MSwweGZmZmZm
ZmZjKCVlYnApCjB4ODA0ODRhOCA8bWFpbisyND46ICAgIG1vdmwgICAweGZmZmZmZmZjKCVlYnAp
LCVlYXgKMHg4MDQ4NGFiIDxtYWluKzI3PjogICAgcHVzaGwgICVlYXgKMHg4MDQ4NGFjIDxtYWlu
KzI4PjogICAgcHVzaGwgICQweDgwNDg1MmMKMHg4MDQ4NGIxIDxtYWluKzMzPjogICAgY2FsbCAg
IDB4ODA0ODNiYyA8cHJpbnRmPgoweDgwNDg0YjYgPG1haW4rMzg+OiAgICBhZGRsICAgJDB4Yywl
ZXNwCjB4ODA0ODRiOSA8bWFpbis0MT46ICAgIHhvcmwgICAlZWF4LCVlYXgKMHg4MDQ4NGJiIDxt
YWluKzQzPjogICAgam1wICAgIDB4ODA0ODRjMCA8bWFpbis0OD4KMHg4MDQ4NGJkIDxtYWluKzQ1
PjogICAgbGVhbCAgIDB4MCglZXNpKSwlZXNpCjB4ODA0ODRjMCA8bWFpbis0OD46ICAgIG1vdmwg
ICAlZWJwLCVlc3AKMHg4MDQ4NGMyIDxtYWluKzUwPjogICAgcG9wbCAgICVlYnAKMHg4MDQ4NGMz
IDxtYWluKzUxPjogICAgcmV0ICAgIAoqLwo=