[Bug c++/18020] New: issue with enum in a template

gmorin1 at bloomberg dot net gcc-bugzilla@gcc.gnu.org
Fri Oct 15 18:05:00 GMT 2004


Here we go:

gmorin@linux:~> cat foo.cpp
template <typename FOO>
struct bar {
    enum {
        MASK = ((1 << 17)-1)
        , IT_MASK = (~MASK)
        , ITERATION_INC = (MASK+1)
    };
};

int baz = bar<int>::IT_MASK;
gmorin@linux:~> g++ -o /dev/null -c foo.cpp
foo.cpp: In instantiation of `bar<int>':
foo.cpp:10:   instantiated from here
foo.cpp:3: error: enumerator value for `IT_MASK' not integer constant
gmorin@linux:~> gcc -v
Reading specs from /openpkg/lib/gcc/i686-pc-linux-gnu/3.4.2/specs
Configured with: ../configure --cache-file=./config.cache
--srcdir=/openpkg/RPM/TMP/gcc-3.4.2/obj/.. --prefix=/openpkg
--exec-prefix=/openpkg --includedir=/openpkg/include/gcc
--libexecdir=/openpkg/libexec/gcc --with-gxx-include-dir=/openpkg/include/g++
--with-local-prefix=/openpkg/lib/gcc --enable-languages=c,c++
--enable-threads=posix --disable-maintainer-mode --disable-shared --disable-nls
--with-gnu-ld --with-ld=/openpkg/bin/ld --with-gnu-as --with-as=/openpkg/bin/as
Thread model: posix
gcc version 3.4.2 (OpenPKG-CURRENT)
gmorin@linux:~> uname -a
Linux linux 2.4.21-99-smp4G #1 SMP Wed Sep 24 14:13:20 UTC 2003 i686 athlon i386
GNU/Linux

This is a Suse 9.0 with gcc from CURRENT OpenPKG. It works if you remove the
template declaration.

-- 
           Summary: issue with enum in a template
           Product: gcc
           Version: 3.4.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gmorin1 at bloomberg dot net
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18020



More information about the Gcc-bugs mailing list