[Bug c++/80516] New: No error for bad type-specifier-seq in template parameter

jens.maurer at gmx dot net gcc-bugzilla@gcc.gnu.org
Tue Apr 25 09:33:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80516

            Bug ID: 80516
           Summary: No error for bad type-specifier-seq in template
                    parameter
           Product: gcc
           Version: 6.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jens.maurer at gmx dot net
  Target Milestone: ---

The following code violates [dcl.type] paragraph 2 "at most one type-specifier
is allowed in a type-specifier-seq" (none of the exceptions apply), yet gcc
does not issue a diagnostic unless -Wpedantic is given:

using u = unsigned int;

template<class T>
struct S { };

S<signed u> s;


$ g++ -c bad.cc
<no error>

$ g++ -c -Wpedantic bad.cc
bad.cc:7:10: warning: long, short, signed or unsigned used invalidly for ‘type
name’ [-Wpedantic]
 S<signed u> s;
          ^

I'd like to kindly ask that this syntax confusion be made an error instead of a
(frequently disabled) warning.


More information about the Gcc-bugs mailing list