c++/7722: static array of label addresses in function templates
foldy@bombur.rmki.kfki.hu
foldy@bombur.rmki.kfki.hu
Mon Aug 26 03:06:00 GMT 2002
>Number: 7722
>Category: c++
>Synopsis: static array of label addresses in function templates
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Mon Aug 26 01:46:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Lajos Foldy
>Release: 3.2
>Organization:
KFKI RMKI
>Environment:
System: Linux bombur 2.4.18 #1 SMP Mon Apr 15 10:49:40 CEST 2002 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.2.0/configure --prefix=/usr/local/gcc-3.2.0 --enable-long-long --enable-shared --enable-threads --disable-libgcj
>Description:
g++ produces an ICE on creating a static array of label addresses
in function templates
>How-To-Repeat:
template<class T>
int fun(T i)
{
static void* labs[2] = { &&lab1, &&lab2 };
goto *(labs[i==0]);
lab1: return 1;
lab2: return 2;
return 0;
}
int main()
{ return fun(1); }
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-prs
mailing list