c++/8545: failure to parse object declaration

tom.widmer@camcog.com tom.widmer@camcog.com
Tue Nov 12 04:46:00 GMT 2002

>Number:         8545
>Category:       c++
>Synopsis:       failure to parse object declaration
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 12 04:46:03 PST 2002
>Originator:     Tom Widmer
>Release:        3.2
Reading specs from c:/Dev-C++/bin/../lib/gcc-lib/mingw32/3.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=f77,c++,objc,ada --disable-win32-registry --disable-shared
Thread model: win32
gcc version 3.2 (mingw special 20020817-1)
The following code fails to compile:

class test{};
int main() {
    test t((test()));

The error is:
main.cpp: In function `int main()':
main.cpp:3: parse error before `)' token

I disagree with this error, and so does Comeau C++ 4.3. The declaration can be parsed as an object declaration (but not a function one), so why isn't it?
$ echo "class test{};int main(){test t((test()));}" > main.cpp
$ g++ main.cpp


More information about the Gcc-bugs mailing list