From mboxrd@z Thu Jan 1 00:00:00 1970 From: emmerik@csee.uq.edu.au To: gcc-gnats@gcc.gnu.org Subject: c/2035: Internal compiler error on complex casts. Only with optimisation. Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <20010220070516.2173.qmail@sourceware.cygnus.com> X-SW-Source: 2001-q1/msg01508.html List-Id: >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 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=