This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/18674] New: G++ accepts bad elaborated type specifiers



elaborated-type-speficier:
  class-key ::? nested-name-specifier? identifier
  class-key ::? nested-name-specifier? template? template-id
  enum ::? nested-name-specifier? identifier
  typename ::? nested-name-specifier? identifier
  typename ::? nested-name-specifier? template? template-id

According to the paragraph 7.1.5.3.3 of the standard, the three first
rules need to refer to class, union, or enum depending on the first
keyword. But gcc accepts it to be used whenever you want.

Environment:
System: Linux nostromo 2.4.27-1-686 #1 Fri Sep 3 06:28:00 UTC 2004 i686 GNU/Linux
Architecture: i686

	
host: i486-pc-linux-gnu
build: i486-pc-linux-gnu
target: i486-pc-linux-gnu
configured with: ../src/configure -v --enable-languages=c,c++,java,objc,ada --prefix=/usr/lib/gcc-snapshot --enable-shared --with-system-zlib --enable-nls --enable-threads=posix --without-included-gettext --disable-werror --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk i486-linux-gnu

How-To-Repeat:

The command line used was:
g++-snapshot -std=c++98 -pedantic -W -Wall -c e.cc

The following source file is invalid but gcc do not say anything:
template <typename I>
static void g() {
  enum I::t a;
  (void) a;
}

struct B {
  typedef int t;
};

void h()
{
  g<B>();
}

-- 
           Summary: G++ accepts bad elaborated type specifiers
           Product: gcc
           Version: 0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: valentin at lrde dot epita dot fr
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i486-pc-linux-gnu
  GCC host triplet: i486-pc-linux-gnu
GCC target triplet: i486-pc-linux-gnu


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]