This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/2044: errant template compilation errors
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/2044: errant template compilation errors
- From: igodard at rational dot com
- Date: 20 Feb 2001 23:36:09 -0000
- Reply-To: igodard at rational dot com
>Number: 2044
>Category: c++
>Synopsis: errant template compilation errors
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Feb 20 15:46:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Ivan Godard
>Release: 2.95, also 3.0
>Organization:
>Environment:
igodard@pine <276> uname -a
Linux pine 2.2.12-20smp #1 SMP Mon Sep 27 10:34:45 EDT 1999 i686 unknown
>Description:
On 2.95, sample code gives error iff template argument is a
declared constant; no error is argument is integer literal.
Error message is:
test2.cpp: In function `static void segmentedVector<int,FixedSizeSegments<1000> >::UnitTest()':
test2.cpp:30: instantiated from here
test2.cpp:27: conversion from `segmentedVector<int,FixedSizeSegments<5> >::Iterator<int>' to non-scalar type `segmentedVector<int,FixedSizeSegments<1000> >::Iterator<int>' requested
On 3.0 (using webtest) gives error in both conditions; message is:
/tmp/@18645.7.cc: In static member function `static void segmentedVector::UnitTest() [with T = int, SizePolicy =
FixedSizeSegments<1000>]':
/tmp/@18645.7.cc:29: instantiated from here
/tmp/@18645.7.cc:26: conversion from `segmentedVector
>::Iterator' to non-scalar type `segmentedVector >::Iterator' requested
BTW, the 3.0 error message is probably the same message as the 2.95 but has less useful information
>How-To-Repeat:
compile sample code. There should not be an error reported
under any condition; that the error depends on whether a
literal or a const is used (under 2.95) is bizarre.
>Fix:
please
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="test2.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test2.cpp"
I2luY2x1ZGUgPHZlY3Rvcj4NCnRlbXBsYXRlIDxzaXplX3QgZWxlbWVudENvdW50ID0gMTAwMD4N
CmNsYXNzIEZpeGVkU2l6ZVNlZ21lbnRzIHsNCnB1YmxpYzoNCn07DQp0ZW1wbGF0ZSA8Y2xhc3Mg
VCwgY2xhc3MgU2l6ZVBvbGljeSA9IEZpeGVkU2l6ZVNlZ21lbnRzPD4gPg0KY2xhc3Mgc2VnbWVu
dGVkVmVjdG9yIHsNCnB1YmxpYzoJCQ0KCXRlbXBsYXRlPGNsYXNzIElUPg0KCWNsYXNzIEl0ZXJh
dG9yew0KCXB1YmxpYzoNCgkJSXRlcmF0b3IoKSB7fQ0KCX07CQ0KCQ0KCXR5cGVkZWYgSXRlcmF0
b3I8VD4JCQkJaXRlcmF0b3I7CQkJDQoJc2VnbWVudGVkVmVjdG9yKCkge30NCglpdGVyYXRvciBi
ZWdpbigpOw0KCXN0YXRpYyB2b2lkIFVuaXRUZXN0KCk7DQp9Ow0KDQp0ZW1wbGF0ZSA8Y2xhc3Mg
VCwgY2xhc3MgUz4gdm9pZA0Kc2VnbWVudGVkVmVjdG9yPFQsIFM+OjpVbml0VGVzdCgpIHsNCglj
b25zdCBpbnQgc2VnbWVudFNpemUgPSA1Ow0KCXR5cGVkZWYgc2VnbWVudGVkVmVjdG9yPGludCwg
Rml4ZWRTaXplU2VnbWVudHM8c2VnbWVudFNpemU+ID4gaW50VmVjOy8vISEhISENCgl0eXBlZGVm
IGludFZlYzo6aXRlcmF0b3IgaXRlcmF0b3I7DQoJaW50VmVjIGl2Ow0KCWl0ZXJhdG9yIGkxID0g
aXYuYmVnaW4oKTsNCn0NCm1haW4oKSAgew0KCXNlZ21lbnRlZFZlY3RvcjxpbnQ+OjpVbml0VGVz
dCgpOw0KfQ0KDQovKglUaGlzIGdpdmVzOg0KDQppZ29kYXJkQHBpbmUgPDI3Mj4gZ2NjIC1jIHRl
c3QyLmNwcA0KdGVzdDIuY3BwOiBJbiBmdW5jdGlvbiBgc3RhdGljIHZvaWQgc2VnbWVudGVkVmVj
dG9yPGludCxGaXhlZFNpemVTZWdtZW50czwxMDAwPg0KPjo6VW5pdFRlc3QoKSc6DQp0ZXN0Mi5j
cHA6Mzk6ICAgaW5zdGFudGlhdGVkIGZyb20gaGVyZQ0KdGVzdDIuY3BwOjM0OiBjb252ZXJzaW9u
IGZyb20gYHNlZ21lbnRlZFZlY3RvcjxpbnQsRml4ZWRTaXplU2VnbWVudHM8NT4NCj46Okl0ZXJh
dG9yPGludD4nIHRvIG5vbi1zY2FsYXIgdHlwZQ0KYHNlZ21lbnRlZFZlY3RvcjxpbnQsRml4ZWRT
aXplU2VnbWVudHM8MTAwMD4gPjo6SXRlcmF0b3I8aW50PicgcmVxdWVzdGVkDQoNCglidXQgY29t
cGlsZXMgd2l0aG91dCBlcnJvciBpZiBsaXRlcmFsICc1JyBpcyB1c2VkIGluc3RlYWQgb2YgJ3Nl
Z21lbnRTaXplIGluDQoJbGluZSBtYXJrZWQgd2l0aCAvLyEhISEhDQoNCiovDQo=