This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/3107: internal compiler error on template function
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/3107: internal compiler error on template function
- From: daniel dot schnell at embeddedware dot de
- Date: 10 Jun 2001 14:05:33 -0000
- Reply-To: daniel dot schnell at embeddedware dot de
>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 <class T>
T PolynomialFit<T>::eval (T x)
{
return Polynomial<T>::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==