From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Received: (qmail 24552 invoked by uid 61); 10 Jan 2003 01:02:30 -0000 Date: Fri, 10 Jan 2003 01:02:00 -0000 Message-ID: <20030110010230.24551.qmail@sources.redhat.com> To: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, pavel_vozenilek@hotmail.com From: bangerth@dealii.org Reply-To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, pavel_vozenilek@hotmail.com, gcc-gnats@gcc.gnu.org Subject: Re: c++/9256: C++ compiler conformance to Standard proposal 337 X-SW-Source: 2003-01/txt/msg00627.txt.bz2 List-Id: Synopsis: C++ compiler conformance to Standard proposal 337 State-Changed-From-To: open->analyzed State-Changed-By: bangerth State-Changed-When: Thu Jan 9 17:02:29 2003 State-Changed-Why: Confirmed. A simple testcase is that this must not compile: ------------------------ struct Abstract { virtual void f() = 0; }; Abstract (*a)[2]; -------------------------- A more complicated that this should succeed at run-time: -------------------------- #include // must match all non-abstract types (except U=void, U a reference, etc) template int check(U (*)[1]) { return 1;}; // worst case match for everything else template int check(...) { return 2;}; struct Abstract { virtual void f() = 0; }; int main () { assert (check (0) == 1); assert (check (0) == 2); }; -------------------------- gcc3.4 is wrong on both testcases. W. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9256