public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* target/8309: m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack
@ 2002-10-22 11:46 Peter.Barada
  0 siblings, 0 replies; 2+ messages in thread
From: Peter.Barada @ 2002-10-22 11:46 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8309
>Category:       target
>Synopsis:       m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 22 11:46:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Peter Barada
>Release:        gcc-3.2
>Organization:
>Environment:
--target=m68k-elf
>Description:
Compile the attached test files with:
m68k-elf-gcc -O2 -fno-common  -ffixed-a2 -m5200 -S -o yy.s yy.c -dp -da

And in the ouptut of yy.c.21.greg, you'll find:
(insn 492 283 284 (set (reg:SI 1 %d1)
        (const_int 1 [0x1])) 30 {*m68k.md:993} (nil)
    (nil))

(insn 284 492 285 (set (mem:SI (plus:SI (reg/f:SI 14 %a6)
                (const_int -40 [0xffffffd8])) [26 rotate S4 A16])
        (plus:SI (mem:SI (plus:SI (reg/f:SI 14 %a6)
                    (const_int -40 [0xffffffd8])) [26 rotate S4 A16])
            (reg:SI 1 %d1))) 99 {*addsi3_5200} (nil)
    (nil))

But the 'rotate' variable is a *short*, so the 'set(mem:SI' will overwrite the
adjacent variable on the stack.  In fact the statement *increments*
the 'fs' varaible which is at offset -38 from the frame...
>How-To-Repeat:
m68k-elf-gcc -O2 -fno-common  -ffixed-a2 -m5200 -S -o yy.s yy.c -dp -da
>Fix:

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

Cgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX21vZGVfdDsKdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgX19rZXJuZWxfc2l6ZV90Owp0eXBlZGVmIGludCBfX2tlcm5lbF9zc2l6ZV90Owp0eXBl
ZGVmIGxvbmcgbG9uZyBfX2tlcm5lbF9sb2ZmX3Q7Cgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVt
b2RlX3Q7CgoKdHlwZWRlZiBfX2tlcm5lbF9tb2RlX3QgbW9kZV90Owp0eXBlZGVmIF9fa2VybmVs
X2xvZmZfdCBsb2ZmX3Q7Cgp0eXBlZGVmIF9fa2VybmVsX3NpemVfdCBzaXplX3Q7CnR5cGVkZWYg
X19rZXJuZWxfc3NpemVfdCBzc2l6ZV90OwoKdHlwZWRlZiBzaG9ydCBpbnQgbW1fc2VnbWVudF90
OwoKc3RydWN0IHRocmVhZF9zdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGxvbmcga3NwOwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgdXNwOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNyOwogICAgICAg
IHVuc2lnbmVkIHNob3J0IGZzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgY3JwWzJdOwogICAgICAg
IHVuc2lnbmVkIGxvbmcgZXNwMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGZhZGRyOwogICAgICAg
IGludCBzaWdubywgY29kZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGZwWzgqM107CiAgICAgICAg
dW5zaWduZWQgbG9uZyBmcGNudGxbM107CiAgICAgICAgdW5zaWduZWQgY2hhciBmcHN0YXRlWyg5
Ni9zaXplb2YodW5zaWduZWQgY2hhcikpXTsKfTsKCnN0cnVjdCBmaWxlOwpzdHJ1Y3QgaW5vZGU7
Cgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGtkZXZfdDsKCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQg
aW50IGtkZXZfdF90b19ucihrZGV2X3QgZGV2KSB7CiAgICAgICAgcmV0dXJuICgoKHVuc2lnbmVk
IGludCkgKChkZXYpID4+IDgpKTw8OCkgfCAoKHVuc2lnbmVkIGludCkgKChkZXYpICYgKCgxVSA8
PCA4KSAtIDEpKSk7Cn0Kc3RhdGljIGlubGluZSBrZGV2X3QgdG9fa2Rldl90KGludCBkZXYpCnsK
ICAgICAgICBpbnQgbWFqb3IsIG1pbm9yOwogICAgICAgIG1ham9yID0gKGRldiA+PiA4KTsKICAg
ICAgICBtaW5vciA9IChkZXYgJiAweGZmKTsKICAgICAgICByZXR1cm4gKCgobWFqb3IpIDw8IDgp
IHwgKG1pbm9yKSk7Cn0KCnN0cnVjdCBmaWxlIHsKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpmX2Rl
bnRyeTsKICAgICAgICBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmX29wOwogICAgICAgIGxvZmZf
dCBmX3BvczsKfTsKCnN0cnVjdCBmaWxlX29wZXJhdGlvbnMgewogICAgICAgIHNzaXplX3QgKCpy
ZWFkKSAoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKICAgICAgICBz
c2l6ZV90ICgqd3JpdGUpIChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgbG9m
Zl90ICopOwogICAgICAgIGludCAoKnJlbGVhc2UpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZp
bGUgKik7Cn07CgppbnQgcHJpbnRrKGNvbnN0IGNoYXIgKiBmbXQsIC4uLikKICAgICBfX2F0dHJp
YnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDEsIDIpKSk7CgpleHRlcm4gaW50IGJsa2Rldl9vcGVu
KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIGludCBibGtkZXZfY2xvc2Uo
c3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwoKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJh
dGlvbnMgZGVmX2Jsa19mb3BzOwpleHRlcm4gdm9pZCBpbml0X3NwZWNpYWxfaW5vZGUoc3RydWN0
IGlub2RlICosIHVtb2RlX3QsIGludCk7CgpleHRlcm4gdm9pZCBpcHV0KHN0cnVjdCBpbm9kZSAq
KTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGdldF9lbXB0eV9pbm9kZSh2b2lkKTsKCmV4dGVybiBr
ZGV2X3QgUk9PVF9ERVY7CmV4dGVybiBjaGFyIHJvb3RfZGV2aWNlX25hbWVbXTsKZXh0ZXJuIGlu
dCByZWFsX3Jvb3RfZGV2OwoKc3RydWN0IHRhc2tfc3RydWN0IHsKICAgICAgICBzdHJ1Y3QgdGhy
ZWFkX3N0cnVjdCB0aHJlYWQ7Cn07CgpyZWdpc3RlciBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnJl
bnQgX19hc21fXygiJWEyIik7CmV4dGVybiB2b2lkICprbWFsbG9jKHNpemVfdCwgaW50KTsKZXh0
ZXJuIHZvaWQga2ZyZWUoY29uc3Qgdm9pZCAqKTsKCgp2b2lkIF9fYXR0cmlidXRlX18gKChfX3Nl
Y3Rpb25fXyAoIi50ZXh0LmluaXQiKSkpIHJkX2xvYWRfaW1hZ2Uoa2Rldl90IGRldmljZSwgaW50
IG9mZnNldCwgaW50IHVuaXQpCnsKICBzdHJ1Y3QgaW5vZGUgKmlub2RlLCAqb3V0X2lub2RlOwog
IHN0cnVjdCBmaWxlIGluZmlsZSwgb3V0ZmlsZTsKICBtbV9zZWdtZW50X3QgZnM7CiAga2Rldl90
IHJhbV9kZXZpY2U7CiAgaW50IG5ibG9ja3MsIGk7CiAgY2hhciAqYnVmOwogIHVuc2lnbmVkIHNo
b3J0IHJvdGF0ZSA9IDA7CiAgdW5zaWduZWQgc2hvcnQgZGV2YmxvY2tzID0gMDsKICBjaGFyIHJv
dGF0b3JbNF0gPSB7ICd8JyAsICcvJyAsICctJyAsICdcXCcgfTsKICByYW1fZGV2aWNlID0gKCgo
MSkgPDwgOCkgfCAodW5pdCkpOwoKICBpZiAoKGlub2RlID0gZ2V0X2VtcHR5X2lub2RlKCkpID09
ICgodm9pZCAqKTApKQogICAgcmV0dXJuOwoKICBtZW1zZXQoKCZpbmZpbGUpLCgwKSwoc2l6ZW9m
KGluZmlsZSkpKTsKICBpbmZpbGUuZl9vcCA9ICZkZWZfYmxrX2ZvcHM7CiAgaW5pdF9zcGVjaWFs
X2lub2RlKGlub2RlLCAwMDYwMDAwIHwgMDA0MDAsIGtkZXZfdF90b19ucihkZXZpY2UpKTsKICBp
ZiAoKG91dF9pbm9kZSA9IGdldF9lbXB0eV9pbm9kZSgpKSA9PSAoKHZvaWQgKikwKSkKICAgIGdv
dG8gZnJlZV9pbm9kZTsKICBtZW1zZXQoKCZvdXRmaWxlKSwoMCksKHNpemVvZihvdXRmaWxlKSkp
OwogIG91dGZpbGUuZl9vcCA9ICZkZWZfYmxrX2ZvcHM7CiAgaW5pdF9zcGVjaWFsX2lub2RlKG91
dF9pbm9kZSwgMDA2MDYwMCwga2Rldl90X3RvX25yKHJhbV9kZXZpY2UpKTsKICBpZiAoYmxrZGV2
X29wZW4oaW5vZGUsICZpbmZpbGUpICE9IDApIHsKICAgIGdvdG8gZnJlZV9pbm9kZTsKICB9CiAg
aWYgKGJsa2Rldl9vcGVuKG91dF9pbm9kZSwgJm91dGZpbGUpICE9IDApCiAgICBnb3RvIGZyZWVf
aW5vZGVzOwogIGZzID0gKGN1cnJlbnQtPnRocmVhZC5mcyk7CiAgbmJsb2NrcyA9IGlkZW50aWZ5
X3JhbWRpc2tfaW1hZ2UoZGV2aWNlLCAmaW5maWxlLCBvZmZzZXQpOwoKI2lmIDAKICBidWYgPSBr
bWFsbG9jKCgxPDwxMCksICgweDIwIHwgMHgxMCB8IDB4NDAgfCAweDgwIHwgMHgxMDApKTsKI2Vu
ZGlmCiAgZGV2YmxvY2tzID0gbmJsb2NrczsKICBmb3IgKGk9MDsgaSA8IG5ibG9ja3M7IGkrKykg
ewogICAgaWYgKGkgJiYgKGkgJSBkZXZibG9ja3MgPT0gMCkpIHsKICAgICAgcm90YXRlID0gMDsK
ICAgICAgaW5maWxlLmZfcG9zID0gMDsKICAgIH0KICAgIGlmICghKGkgJSAxNikpIHsKICAgICAg
cHJpbnRrKCIlY1xiIiwgcm90YXRvcltyb3RhdGUgJiAweDNdKTsKICAgICAgcm90YXRlKys7CiAg
ICB9CiAgfQogIFJPT1RfREVWID0gKCgoMSkgPDwgOCkgfCAodW5pdCkpOwoKICBpbmZpbGUuZl9v
cC0+cmVsZWFzZShpbm9kZSwgJmluZmlsZSk7CiAgYmxrZGV2X2Nsb3NlKG91dF9pbm9kZSwgJm91
dGZpbGUpOwogIGlwdXQoaW5vZGUpOwogIGlwdXQob3V0X2lub2RlKTsKICAoY3VycmVudC0+dGhy
ZWFkLmZzID0gKGZzKSk7CiAgcmV0dXJuOwogZnJlZV9pbm9kZXM6CiAgaXB1dChvdXRfaW5vZGUp
OwogIGluZmlsZS5mX29wLT5yZWxlYXNlKGlub2RlLCAmaW5maWxlKTsKIGZyZWVfaW5vZGU6CiAg
aXB1dChpbm9kZSk7Cn0K


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

* Re: target/8309:m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack
@ 2002-10-29 15:56 Peter Barada
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Barada @ 2002-10-29 15:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR target/8309; it has been noted by GNATS.

From: Peter Barada <pbarada@mail.wm.sps.mot.com>
To: gcc-gnats@gcc.gnu.org
Cc: Peter.Barada@motorola.com
Subject: Re: target/8309:m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack
Date: Tue, 29 Oct 2002 18:49:50 -0500

 I've culled a much smaller testcase that fails on the trunk and the
 3.2 branch.  I'm backsearching the trunk to see when this bug was
 introduced, and have found the bug existed back at 2000/02/01, but
 doesn't show itself at 1999/01/01, so I'll try to narrow it down.
 
 
 #define SMALLER_TESTCASE  /* make the testcase *very* small */
 
 extern void foo();
 void foo(a,b,c,d,e,f,g,h,i,j,k,l)
      short a,b,c,d,e,f,g,h,i,j,k,l;
 {
   short m,n,o,p,q,r,s
 #ifndef SMALLER_TESTCASE
     ,t,u,v
 #endif
     ;
 
   for (m=0; m<a; ++m) {
     for (n=m; n<b; ++n) {
       for (o=n; o<c; ++o) {
         for (p=o; p<d; ++p) {
           for (q=p; q<e; ++q) {
             for (r=q; r<f; ++r) {
               for (s=r; s<g; ++s) {
 #ifndef SMALLER_TESTCASE
                 for (t=s; t<h; ++t) {
                   for (u=t; u<i; ++u) {
                     for (v=u; v<j; ++v) {
 #endif
                       foo2(m,n,o,p,q
                            ,r,s
 #ifndef SMALLER_TESTCASE
                            ,t,u,v
 #endif
                            );
                     }
                   }
 #ifndef SMALLER_TESTCASE
                 }
               }
             }
 #endif
           }
         }
       }
     }
   }
 }


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

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

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-22 11:46 target/8309: m68k-elf-gcc -m5200 produces erroneous SImode set of short varaible on stack Peter.Barada
2002-10-29 15:56 target/8309:m68k-elf-gcc " Peter Barada

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