From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20134 invoked by alias); 14 May 2003 00:56:01 -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 20094 invoked by uid 71); 14 May 2003 00:56:00 -0000 Date: Wed, 14 May 2003 00:56:00 -0000 Message-ID: <20030514005600.20093.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Wolfgang Bangerth Subject: Re: c++/6785 Reply-To: Wolfgang Bangerth X-SW-Source: 2003-05/txt/msg01530.txt.bz2 List-Id: The following reply was made to PR c++/6785; it has been noted by GNATS. From: Wolfgang Bangerth To: gcc-bugs@gcc.gnu.org, , Cc: Subject: Re: c++/6785 Date: Tue, 13 May 2003 19:55:39 -0500 (CDT) This doesn't ICE any more with mainline, but with James's smaller testcase, ---------------------- #include template< typename T, size_t N > size_t size( T (&a)[ N ] ) { return N ; } void f() { static char const s[] = "abc" ; int buf[ size( s ) ] ; size_t r = size( buf ) ; } ---------------------- I now get: g/x> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc x.cc: In function `void f()': x.cc:14: error: no matching function for call to `size(int[size(T (&)[N]) [with T = const char, unsigned int N = 4]((&s))])' I think, it's warranted that gcc doesn't find a match, since "buf" is dynamically sized (there are other duplicates of this problem). It's funny, though, that gcc is able nevertheless to figure out the size of the array, and the error message of course is not very helpful: - it says that there's no match, even gives the template args, where there of course is one. - the placing of the template args is wrong in the message. Nathan, can you say anything about the legality of this at least? W. ------------------------------------------------------------------------- Wolfgang Bangerth email: bangerth@ices.utexas.edu www: http://www.ices.utexas.edu/~bangerth/