From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3358 invoked by alias); 4 Nov 2002 16:26:02 -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 3332 invoked by uid 71); 4 Nov 2002 16:26:01 -0000 Resent-Date: 4 Nov 2002 16:26:01 -0000 Resent-Message-ID: <20021104162601.3331.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, ehrhardt@mathematik.uni-ulm.de Received: (qmail 31123 invoked by uid 61); 4 Nov 2002 16:24:25 -0000 Message-Id: <20021104162425.31121.qmail@sources.redhat.com> Date: Mon, 04 Nov 2002 08:26:00 -0000 From: ehrhardt@mathematik.uni-ulm.de Reply-To: ehrhardt@mathematik.uni-ulm.de To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: preprocessor/8449: Ellipsis in 3...5 not recognized properly X-SW-Source: 2002-11/txt/msg00162.txt.bz2 List-Id: >Number: 8449 >Category: preprocessor >Synopsis: Ellipsis in 3...5 not recognized properly >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: rejects-legal >Submitter-Id: net >Arrival-Date: Mon Nov 04 08:26:00 PST 2002 >Closed-Date: >Last-Modified: >Originator: Christian Ehrhardt >Release: gcc-3.2 >Organization: >Environment: Reading specs from /usr/local/bin/../lib/gcc-lib/sparc-sun-solaris2.9/3.2/specs Configured with: /export/local/manager/playground/ULMgcc32/src/gcc-3.2/configure --with-ld=/usr/local/bin/ld --with-gnu-ld --with-as=/usr/local/bin/as --with-gnu-as --prefix=/usr/local/ Thread model: posix gcc version 3.2 SunOS perseus 5.9 Generic_112233-01 sun4u sparc SUNW,Ultra-5_10 >Description: Compiling this: int a[2] = {[0 ...1]=1}; with gcc -c t.c gives an error: gcc -c t9.c t9.c:1: too many decimal points in floating constant The cause is quite obious: The ellipsis is parsed as part of the number. Something along these lines might fix it (only compile tested as of yet) --- cpplex.c.old Mon Nov 4 17:15:08 2002 +++ cpplex.c Mon Nov 4 17:14:45 2002 @@ -527,6 +527,7 @@ { cpp_buffer *buffer = pfile->buffer; unsigned char *dest, *limit; + int dotdot = 0; dest = BUFF_FRONT (pfile->u_buff); limit = BUFF_LIMIT (pfile->u_buff); @@ -547,6 +548,11 @@ { do { + /* Is this potentially an ellipsis? */ + if (c == '.' && *(buffer->cur+1) == '.') { + dotdot = 1; + break; + } /* Need room for terminating null. */ if ((size_t) (limit - dest) < 2) { @@ -563,6 +569,8 @@ /* Potential escaped newline? */ buffer->backup_to = buffer->cur - 1; + if (dotdot) + break; if (c != '?' && c != '\\') break; c = skip_escaped_newlines (pfile); >How-To-Repeat: See above. >Fix: Add a space before the ellipsis. >Release-Note: >Audit-Trail: >Unformatted: