From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22538 invoked by alias); 14 Jun 2002 16:06:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 22515 invoked by uid 71); 14 Jun 2002 16:06:01 -0000 Resent-Date: 14 Jun 2002 16:06:01 -0000 Resent-Message-ID: <20020614160601.22514.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, Lionel.Champalaune@sophia.inria.fr Resent-Reply-To: gcc-gnats@gcc.gnu.org, Theodore.Papadopoulo@sophia.inria.fr Received: (qmail 19230 invoked by uid 61); 14 Jun 2002 16:01:04 -0000 Message-Id: <20020614160104.19229.qmail@sources.redhat.com> Date: Fri, 14 Jun 2002 09:06:00 -0000 From: Theodore.Papadopoulo@sophia.inria.fr Reply-To: Theodore.Papadopoulo@sophia.inria.fr To: gcc-gnats@gcc.gnu.org Cc: Lionel.Champalaune@sophia.inria.fr X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify: Lionel.Champalaune@sophia.inria.fr Subject: c++/7033: gcc-3.1 X-SW-Source: 2002-06/txt/msg00329.txt.bz2 List-Id: >Number: 7033 >Category: c++ >Synopsis: gcc-3.1 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Jun 14 09:06:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Theodore Papadopoulo >Release: g++-3.1 >Organization: >Environment: Frontend bug not related to environment IMHO, but in any case this is a redhat 6.1 system with an upgraded kernel 2.4.17 (and also an upgraded libc). >Description: In the code below, the specilizations with the comments mentionning "extended iterators" does not work. The compiler seems to not consider the last couple of specialization (without any warning or error message at this point) and insists on using the general definition for SameIteratorAs (the one providing the void argument). I do believe that the standard allows the construct given in the example, so I think this is the g++ frontend fault. The output from g++-3.1, g++-3.0 and g++-2.95.3 are: mururoa->/usr/local/gcc-3.1/bin/g++ Bug.C Bug.C: In function `int main()': Bug.C:62: variable or field `i3' declared void Bug.C:63: request for member `print' in `i3', which is of non-aggregate type ` int' mururoa->/usr/local/gcc-3.0/bin/g++ Bug.C Bug.C: In function `int main()': Bug.C:62: variable or field `i3' declared void Bug.C:63: request for member `print' in `i3', which is of non-aggregate type `int' mururoa->/usr/local/gcc/bin/g++ Bug.C # 2.95.3 Bug.C:25: template parameters not used in partial specialization: Bug.C:25: `type' Bug.C: In function `int main()': Bug.C:62: variable or field `i3' declared void Bug.C:63: request for member `print' in `i3', which is of non-aggregate type `int' >How-To-Repeat: Just compile the program above with g++-3.1. >Fix: None very clean.... Specific cases for given "type" can be done. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="Bug.C" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Bug.C" CgojaW5jbHVkZSA8aW9zdHJlYW0+CgpuYW1lc3BhY2UgVHlwZXMgewoKICAgIC8vICBUcmFuc2Zl cnQgYW4gaXRlcmF0b3Igb3IgY29uc3RfaXRlcmF0b3IgZnJvbSBvbmUgdGVtcGxhdGUgaW5zdGFu dGlhdGlvbgogICAgLy8gIHRvIGFuIGFub3RoZXIuCgogICAgdGVtcGxhdGUgPHR5cGVuYW1lIEMx LHR5cGVuYW1lIEMyLHR5cGVuYW1lIEl0ZXI+CiAgICBzdHJ1Y3QgU2FtZUl0ZXJhdG9yQXMgewog ICAgICAgIHR5cGVkZWYgdm9pZCBpdGVyYXRvcjsKICAgIH07CgogICAgLy8gIFNwZWNpYWxpc2F0 aW9uIGZvciBzdGFuZGFyZCBjb250YWluZXJzLgoKICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSx0 eXBlbmFtZSBUMix0eXBlbmFtZSBBMSx0eXBlbmFtZSBBMix0ZW1wbGF0ZSA8dHlwZW5hbWUgVCx0 eXBlbmFtZSBBPiBjbGFzcyBDPgogICAgc3RydWN0IFNhbWVJdGVyYXRvckFzPEM8VDEsQTE+LEM8 VDIsQTI+LHR5cGVuYW1lIEM8VDEsQTE+OjppdGVyYXRvcj4gewogICAgICAgIHR5cGVkZWYgdHlw ZW5hbWUgQzxUMixBMj46Oml0ZXJhdG9yIGl0ZXJhdG9yOwogICAgfTsKCiAgICAvLyAgU3BlY2lh bGlzYXRpb24gZm9yIGNvbnRhaW5lcnMgd2l0aCBleHRlbmRlZCBpdGVyYXRvcnMuCgogICAgdGVt cGxhdGUgPHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBDLHR5cGVuYW1lIFQxLHR5cGVuYW1l IFQyLHR5cGVuYW1lIHR5cGU+CiAgICBzdHJ1Y3QgU2FtZUl0ZXJhdG9yQXM8QzxUMT4sQzxUMj4s dHlwZW5hbWUgQzxUMT46Oml0ZXJhdG9yPHR5cGU+ID4gewogICAgICAgIHR5cGVkZWYgdHlwZW5h bWUgQzxUMj46Oml0ZXJhdG9yPHR5cGU+IGl0ZXJhdG9yOwogICAgfTsKfQoKdGVtcGxhdGUgPHR5 cGVuYW1lIFQsdHlwZW5hbWUgQT12b2lkPgpzdHJ1Y3QgQ29udGFpbmVyIHsKICAgIHN0cnVjdCBp dGVyYXRvciB7CiAgICAgICAgdm9pZCBwcmludCgpIGNvbnN0IHsgc3RkOjpjb3V0IDw8ICJub3Jt YWwgaXRlcmF0b3IgIiA8PCBfX1BSRVRUWV9GVU5DVElPTl9fIDw8IHN0ZDo6ZW5kbDsgfQogICAg fTsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdHJ1Y3QgQ29udGFpbmVyMiB7CgogICAgdGVt cGxhdGUgPHR5cGVuYW1lIEl0VHlwZT4KICAgIHN0cnVjdCBpdGVyYXRvciB7CiAgICAgICAgdm9p ZCBwcmludCgpIGNvbnN0IHsgc3RkOjpjb3V0IDw8ICJub3JtYWwgaXRlcmF0b3IgIiA8PCBfX1BS RVRUWV9GVU5DVElPTl9fIDw8IHN0ZDo6ZW5kbDsgfQogICAgfTsKfTsKCmludAptYWluKCkKewog ICAgdXNpbmcgbmFtZXNwYWNlIFR5cGVzOwoKICAgIHR5cGVkZWYgQ29udGFpbmVyPGludD4gICBj aTsKICAgIHR5cGVkZWYgQ29udGFpbmVyPGZsb2F0PiBjZjsKICAgIHR5cGVkZWYgU2FtZUl0ZXJh dG9yQXM8Y2ksY2YsY2k6Oml0ZXJhdG9yPjo6aXRlcmF0b3IgICAgICAgICAgICAgICAgICBJdGVy MTsKCiAgICBJdGVyMSBpMTsKICAgIGkxLnByaW50KCk7CgogICAgdHlwZWRlZiBDb250YWluZXIy PGludD4gICBjMmk7CiAgICB0eXBlZGVmIENvbnRhaW5lcjI8ZmxvYXQ+IGMyZjsKICAgIHR5cGVk ZWYgU2FtZUl0ZXJhdG9yQXM8YzJpLGMyZixjMmk6Oml0ZXJhdG9yPGZsb2F0PiA+OjppdGVyYXRv ciAgICAgICBJdGVyMzsKCiAgICBJdGVyMyBpMzsKICAgIGkzLnByaW50KCk7Cn0K