This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c++/2044: errant template compilation errors



>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=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]