c/2035: Internal compiler error on complex casts. Only with optimisation.
emmerik@csee.uq.edu.au
emmerik@csee.uq.edu.au
Mon Feb 19 23:06:00 GMT 2001
>Number: 2035
>Category: c
>Synopsis: Internal compiler error on complex casts. Only with optimisation.
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Mon Feb 19 23:06:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Mike Van Emmerik
>Release: unknown-1.0
>Organization:
>Environment:
Sparc solaris 2.8
$ gcc -v
Reading specs from /opt/local/stow/gcc-2.95.2.1/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2.1/specs
gcc version 2.95.2.1 19991024 (release)
>Description:
ICE on legal code. Note: compiles OK with no optimisations. Works with Sun C compiler.
I strongly suspect this line:
*(int32*)&d65.f.f35= *((int32*)(((int*)(&v8))+(1)));
This unusual but correct code is machine generated (!).
$ make
gcc -w -O4 -c -o main.o main.c
main.c: In function `main':
main.c:64: Internal compiler error in `extract_bit_field', at expmed.c:1081
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
Note that the URL given is redirected now.
>How-To-Repeat:
gcc -w -O4 -c -o main.o main.c
Withiut the -O4, compiles fine.
Working program should output:
"Two thirds is 0.666666666667"
Probably offending line is:
*(int32*)&d65.f.f35= *((int32*)(((int*)(&v8))+(1)));
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="main.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="main.i"
IyAxICJtYWluLmMiCiMgMSAidXFidC5oIiAxCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAzMSAi
dXFidC5oIgoKIApzdGF0aWMgZG91YmxlICBfc3dhcDhmKGRvdWJsZSAgc3JjKQp7CiAgICB1bnNp
Z25lZCByZXNbMl07ICAgICAgICAgICAgCiAgICByZWdpc3RlciB1bnNpZ25lZCBhcmcgPSAqKHVu
c2lnbmVkKikmc3JjOwogICAgcmVnaXN0ZXIgdW5zaWduZWQgd3JrID0gYXJnICYgMHhmZjAwZmY7
CiAgICBhcmcgPSBhcmcgPj4gODsKICAgIHdyayA9IHdyayA8PCA4OwogICAgd3JrID0gd3JrIHwg
KGFyZyAmIDB4ZmYwMGZmKTsKICAgIHJlc1sxXSA9ICh3cmsgPj4gMTYpIHwgKHdyayA8PCAxNik7
CiAgICBhcmcgPSAqKCgodW5zaWduZWQqKSZzcmMpKzEpOwogICAgd3JrID0gYXJnICYgMHhmZjAw
ZmY7CiAgICBhcmcgPSAodW5zaWduZWQpYXJnID4+IDg7CiAgICB3cmsgPSB3cmsgPDwgODsKICAg
IHdyayA9IHdyayB8IChhcmcgJiAweGZmMDBmZik7CiAgICByZXNbMF0gPSAod3JrID4+IDE2KSB8
ICh3cmsgPDwgMTYpOwogICAgcmV0dXJuICooZG91YmxlICopJnJlczsKfQoKIApzdGF0aWMgbG9u
ZyBsb25nICBfc3dhcDhpKGxvbmcgbG9uZyAgc3JjKQp7CiAgICB1bnNpZ25lZCByZXNbMl07ICAg
ICAgICAgICAgCiAgICByZWdpc3RlciB1bnNpZ25lZCBhcmcgPSAqKHVuc2lnbmVkKikmc3JjOwog
ICAgcmVnaXN0ZXIgdW5zaWduZWQgd3JrID0gYXJnICYgMHhmZjAwZmY7CiAgICBhcmcgPSBhcmcg
Pj4gODsKICAgIHdyayA9IHdyayA8PCA4OwogICAgd3JrID0gd3JrIHwgKGFyZyAmIDB4ZmYwMGZm
KTsKICAgIHJlc1sxXSA9ICh3cmsgPj4gMTYpIHwgKHdyayA8PCAxNik7CiAgICBhcmcgPSAqKCgo
dW5zaWduZWQqKSZzcmMpKzEpOwogICAgd3JrID0gYXJnICYgMHhmZjAwZmY7CiAgICBhcmcgPSAo
dW5zaWduZWQpYXJnID4+IDg7CiAgICB3cmsgPSB3cmsgPDwgODsKICAgIHdyayA9IHdyayB8IChh
cmcgJiAweGZmMDBmZik7CiAgICByZXNbMF0gPSAod3JrID4+IDE2KSB8ICh3cmsgPDwgMTYpOwog
ICAgcmV0dXJuICoobG9uZyBsb25nICopJnJlczsKfQoKCgpleHRlcm4gdW5zaWduZWQgX3VxYnRf
bmF0OyAgICAgICAgICAgIAoKCiAKCmludCAgbWFpbihpbnQgIHYwLCBpbnQgIHYxKTsKIyAxICJt
YWluLmMiIDIKCmludCAgbWFpbihpbnQgIHYwLCBpbnQgIHYxKSB7CmNoYXIgX2xvY2Fsc1sxMjhd
OwoJaW50ICB2MjsKCWludCAgdjM7CglpbnQgIHY0OwoJaW50ICB2NTsKCWludCAgdjY7CglpbnQg
IHY3OwoJZG91YmxlICB2ODsKCWludCAgdjk7CglpbnQgIHYxMDsKCWRvdWJsZSAgdjExOwoJaW50
ICB2MTI7CglpbnQgIHYxMzsKCWludCAgdjE0OwoJaW50ICB2MTU7CglpbnQgIHYxNjsKCWludCAg
djE3Owp1bmlvbiB7Cglkb3VibGUgIGQ2NTsKCXN0cnVjdCB7CgkJZmxvYXQgIGYzNDsKCQlmbG9h
dCAgZjM1OwoJfSBmOwp9IGQ2NTsKdW5pb24gewoJZG91YmxlICBkNjY7CglzdHJ1Y3QgewoJCWZs
b2F0ICBmMzY7CgkJZmxvYXQgIGYzNzsKCX0gZjsKfSBkNjY7CgkJIAoKCXYzPTY3NTg0OwoJdjI9
KHYzKXwoMzA0KTsKCXY0PSAqKChpbnQgKikoKih1bnNpZ25lZCBpbnQgKikmdjIpKTsKCXY1PSAq
KChpbnQgKikoKCoodW5zaWduZWQgaW50ICopJnYyKSsoNCkpKTsKCXY5PXY0OwoJdjEwPXY1OwoJ
ZDY1LmYuZjM0PSooZmxvYXQgKikmdjk7CglkNjUuZi5mMzU9KihmbG9hdCAqKSZ2MTA7Cgl2OD1k
NjUuZDY1OwoJZDY1LmYuZjM0PSooZmxvYXQgKikmdjg7CgkgKihpbnQgKikmZDY1LmYuZjM1PSAq
KChpbnQgKikoKChpbnQqKSgmdjgpKSsoMSkpKTsKCWQ2Ni5mLmYzNj0qKGZsb2F0ICopJnY4OwoJ
ICooaW50ICopJmQ2Ni5mLmYzNz0gKigoaW50ICopKCgoaW50KikoJnY4KSkrKDEpKSk7CglkNjUu
ZDY1PWQ2NS5kNjUrZDY2LmQ2NjsKCXYxMT1kNjUuZDY1OwoJdjQ9KihpbnQgKikmdjExOwoJdjU9
ICooKGludCAqKSgoKGludCopKCZ2MTEpKSsoMSkpKTsKCXYzPTY3NTg0OwoJdjI9KHYzKXwoMjgw
KTsKCXYzPXY0OwoJdjQ9djU7CglwcmludGYodjIsdjMsdjQsdjUsdjYsdjcsdjgsdjksdjEwLHYx
MSk7Cgl2MD0wOwoJZ290byBMMTsKTDE6CQkgCgl2Mj12MDsKCXJldHVybiB2MjsKfQo=
More information about the Gcc-bugs
mailing list