From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel.schnell@embeddedware.de To: gcc-gnats@gcc.gnu.org Subject: c++/3107: internal compiler error on template function Date: Sun, 10 Jun 2001 07:06:00 -0000 Message-id: <20010610140533.16454.qmail@sourceware.cygnus.com> X-SW-Source: 2001-06/msg00367.html List-Id: >Number: 3107 >Category: c++ >Synopsis: internal compiler error on template function >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-illegal-code >Submitter-Id: net >Arrival-Date: Sun Jun 10 07:06:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: daniel.schnell@embeddedware.de >Release: GNU C++ version 2.95.3 20010315 (SuSE) (i486-suse-linux) compiled by GNU C version 2.95.3 20010315 (SuSE). >Organization: >Environment: SuSE Linux 7.2 on AMD-K6-II 500 PC, 256MB RAM. ENV=? >Description: g++ gives an internal compiler error because the function at the end of the attached .ii file is wrongly defined. The correct function definition should be: template T PolynomialFit::eval (T x) { return Polynomial::eval(x); } The test suite compiler also gives the ice. >How-To-Repeat: g++ -Wall -v -save-temps PolynomialFit.ii -c >Fix: Don't write wrong code :) >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/x-c++src; name="PolynomialFit.ii" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PolynomialFit.ii" IyAxICJQb2x5bm9taWFsRml0LmNjIgojIDEgIlBvbHlub21pYWwuY2MiIDEKCgoKIyAxICJTaW1w bGVBcnJheS5jYyIgMQoKCgp0ZW1wbGF0ZSA8Y2xhc3MgVD4KY2xhc3MgU2ltcGxlQXJyYXkgeyAK cHVibGljOgoJU2ltcGxlQXJyYXkgKGludCBzLCBUIGYpOwogICAgIAoKCVNpbXBsZUFycmF5IChj b25zdCBTaW1wbGVBcnJheTxUPiYpOwoJIAoKCVNpbXBsZUFycmF5PFQ+JiBvcGVyYXRvcj0gKGNv bnN0IFNpbXBsZUFycmF5PFQ+Jik7CgkgCgoJflNpbXBsZUFycmF5KCk7CgkgCgoJVCYgb3BlcmF0 b3JbXShpbnQgaSk7CgkgCgkgCgoJaW50IG51bUluZGljZXMgKCk7CgkgCgoJaW50IG1pbkluZGV4 ICgpOwoJIAoKCWludCBtYXhJbmRleCAoKTsKCSAKCglib29sIGlzTWVtYmVyIChpbnQgaSk7Cgkg Cgpwcml2YXRlOgoJaW50IG47ICAgICAgIAoJVCAqcDsgICAgCn0gOwoKCiMgNCAiUG9seW5vbWlh bC5jYyIgMgoKCnRlbXBsYXRlIDxjbGFzcyBUPgpjbGFzcyBQb2x5bm9taWFsIDoKICAgIHB1Ymxp YyBTaW1wbGVBcnJheTxUPiB7CnB1YmxpYzoKCVBvbHlub21pYWwgKGludCBuKTsKCSAKCgkgCgoJ UG9seW5vbWlhbCAoY29uc3QgUG9seW5vbWlhbCYpOwoJIAoKCVBvbHlub21pYWw8VD4mIG9wZXJh dG9yPSAoY29uc3QgUG9seW5vbWlhbCYpOwoJIAoKCWludCBkZWdyZWUgKCk7CgkgCgoJVCBldmFs IChUIHgpOwoJIAoKCVBvbHlub21pYWw8VD4gb3BlcmF0b3IrIChQb2x5bm9taWFsPFQ+IHEpOwoJ IAoKCVBvbHlub21pYWw8VD4gb3BlcmF0b3IqIChQb2x5bm9taWFsPFQ+IHEpOwoJIAoKCWJvb2wg b3BlcmF0b3I9PSAoUG9seW5vbWlhbDxUPiBxKTsKCSAKCgl2b2lkIHByaW50ICgpOwoJIAp9IDsK CgojIDEgIlBvbHlub21pYWxGaXQuY2MiIDIKCgp0ZW1wbGF0ZSA8Y2xhc3MgVD4KY2xhc3MgUG9s eW5vbWlhbEZpdCA6IHByaXZhdGUgUG9seW5vbWlhbDxUPgp7CnB1YmxpYzoKCVBvbHlub21pYWxG aXQgKFNpbXBsZUFycmF5PFQ+JiB4LCBTaW1wbGVBcnJheTxUPiYgeSk7CgkgCgoJVCBldmFsIChU IHgpOwoJIAp9IDsKCnRlbXBsYXRlIDxjbGFzcyBUPgppbmxpbmUgVCBhYnMgKFQgeCkKewoJaWYg KHg8MC4wKSByZXR1cm4gLXg7CgllbHNlIHJldHVybiB4Owp9CgoKdGVtcGxhdGUgPGNsYXNzIFQ+ ClBvbHlub21pYWxGaXQ8VD46OlBvbHlub21pYWxGaXQgKFNpbXBsZUFycmF5PFQ+JiB4LCBTaW1w bGVBcnJheTxUPiYgeSkKCTogUG9seW5vbWlhbDxUPih4Lm1heEluZGV4KCkpCnsKCSAKCWlmICh4 Lm1pbkluZGV4KCkhPTApIHtjZXJyIDw8ICJmYWxzY2hlIEVpbmdhYmUiIDw8IGVuZGw7IHJldHVy bjt9CglpZiAoeS5taW5JbmRleCgpIT0wKSB7Y2VyciA8PCAiZmFsc2NoZSBFaW5nYWJlIiA8PCBl bmRsOyByZXR1cm47fQoKCWludCBuPXgubWF4SW5kZXgoKSsxOyAgCgoJIAoJaWYgKHkubWF4SW5k ZXgoKSsxIT1uKSB7Y2VyciA8PCAiZmFsc2NoZSBFaW5nYWJlIiA8PCBlbmRsOyByZXR1cm47fQoK CSAKCSAKCVQqIEEgPSBuZXcgVFtuKm5dOyAgCglUKiBwID0gbmV3IFRbbl07ICAgIAoJVCogYiA9 IG5ldyBUW25dOyAgICAKCgkgCglmb3IgKGludCBpPTA7IGk8bjsgaT1pKzEpICAKCXsKCQkgCgkJ VCBwcm9kID0gMS4wOyAgCgkJZm9yIChpbnQgaj0wOyBqPG47IGo9aisxKSAgCgkJewoJCQlBW2kq bitqXSA9IHByb2Q7CgkJCXByb2QgPSBwcm9kKnhbaV07CgkJfQoKCQkgCgkJYltpXSA9IHlbaV07 Cgl9CgoJIAoJIAoJZm9yIChpbnQgaz0wOyBrPG4tMTsgaz1rKzEpCgl7CgkJIAoJCVQgcGl2b3Qg PSBhYnMoQVtrKm4ra10pOwoJCWludCBwaXZvdGkgPSBrOwoJCWZvciAoaW50IGk9aysxOyBpPG47 IGk9aSsxKQoJCQlpZiAoYWJzKEFbaSpuK2tdKT5waXZvdCkKCQkJewoJCQkJcGl2b3QgPSBhYnMo QVtpKm4ra10pOwoJCQkJcGl2b3RpID0gaTsKCQkJfQoJCSAKCQlpZiAocGl2b3RpIT1rKQoJCXsK CQkJVCB0OwoKCQkJZm9yIChpbnQgaj1rOyBqPG47IGo9aisxKQoJCQl7CgkJCQl0PUFbaypuK2pd OwoJCQkJQVtrKm4ral0gPSBBW3Bpdm90aSpuK2pdOwoJCQkJQVtwaXZvdGkqbitqXSA9IHQ7CgkJ CX0KCQkJdCA9IGJba107CgkJCWJba10gPSBiW3Bpdm90aV07CgkJCWJbcGl2b3RpXSA9IHQ7CgkJ fQoKCQkgCgkJcGl2b3QgPSBBW2sqbitrXTsKCQlmb3IgKGludCBpPWsrMTsgaTxuOyBpPWkrMSkK CQl7CgkJCWZvciAoaW50IGo9aysxOyBqPG47IGo9aisxKQoJCQkJQVtpKm4ral0gPSBBW2kqbitq XSAtIEFbaSpuK2tdKkFbaypuK2pdL3Bpdm90OwoJCQliW2ldID0gYltpXS1BW2kqbitrXSpiW2td L3Bpdm90OwoJCX0KCX0KCgkgCglmb3IgKGludCBpPW4tMTsgaT49MDsgaT1pLTEpCgl7CgkJZm9y IChpbnQgaj1pKzE7IGo8bjsgaj1qKzEpCgkJCWJbaV0gPSBiW2ldLUFbaSpuK2pdKnBbal07CgkJ cFtpXSA9IGJbaV0vQVtpKm4raV07Cgl9CgoJIAoJZm9yIChpbnQgaT0wOyBpPG47IGk9aSsxKQoJ CSgqdGhpcylbaV0gPSBwW2ldOwoKCSAKCWRlbGV0ZVtdIEE7CglkZWxldGVbXSBiOwoJZGVsZXRl W10gcDsKfQoKCgogCgoKCgoKVCBQb2x5bm9taWFsRml0OjpldmFsIChUIHgpCnsKCXJldHVybiBQ b2x5bm9taWFsOjpldmFsKHgpOwp9Cg==