https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97202
Bug ID: 97202
Summary: GCC reports an error: expected unqualified-id before
‘short’
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: tangyixuan at mail dot dlut.edu.cn
Target Milestone: ---
Hi, GCC 11 rejects the following code when the class 'A' is instantiated. When
I fed it into GCC 1O, it is accepted. Also, clang accepts it. I guess maybe it
is valid.
$ cat s.cpp
template <class T> class A {
public:
A(short,short a=0) {}
A<T>(short b) {}
};
$ g++ -c s.cpp
s.cpp:4:10: error: expected unqualified-id before ‘short’
4 | A<T>(short b) {}
| ^~~~~
s.cpp:4:10: error: expected ‘)’ before ‘short’
4 | A<T>(short b) {}
| ~^~~~~
| )
$ g++ -v
Using built-in specs.
COLLECT_GCC=/usr/local/gcc-20200920/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/gcc-20200920/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-11-20200920/configure --prefix=/usr/local/gcc-20200920
--enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.0.0 20200920 (experimental) (GCC)