This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/8545: failure to parse object declaration
- From: tom dot widmer at camcog dot com
- To: gcc-gnats at gcc dot gnu dot org
- Date: 12 Nov 2002 12:38:49 -0000
- Subject: c++/8545: failure to parse object declaration
- Reply-to: tom dot widmer at camcog dot com
>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
>Closed-Date:
>Last-Modified:
>Originator: Tom Widmer
>Release: 3.2
>Organization:
>Environment:
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)
>Description:
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?
>How-To-Repeat:
$ echo "class test{};int main(){test t((test()));}" > main.cpp
$ g++ main.cpp
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: