From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24122 invoked by alias); 12 Nov 2002 12:46:07 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 24097 invoked by uid 71); 12 Nov 2002 12:46:05 -0000 Resent-Date: 12 Nov 2002 12:46:05 -0000 Resent-Message-ID: <20021112124605.24096.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, tom.widmer@camcog.com Received: (qmail 22257 invoked by uid 61); 12 Nov 2002 12:38:49 -0000 Message-Id: <20021112123849.22256.qmail@sources.redhat.com> Date: Tue, 19 Nov 2002 14:36:00 -0000 From: tom.widmer@camcog.com Reply-To: tom.widmer@camcog.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/8545: failure to parse object declaration X-SW-Source: 2002-11/txt/msg00578.txt.bz2 List-Id: >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: