X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: <003701c83222$971b8860$6501a8c0@paul> From: "Paul Edwards" To: Subject: Re: cygwin 1.5.24-2 gcc 3.4.4 stdio.h Date: Thu, 29 Nov 2007 11:55:49 +1100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook Express 6.00.2800.1437 Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hi Robert. Thanks for your reply. > On Sun, 11 Nov 2007 03:50:28 -0500 (EST), Robert Kiesling wrote >> I just downloaded cygwin 1.5.24-2 (just a couple of hours ago) and >> compiled the following program with "gcc -ansi fred.c" >> (NOTE the "-ansi" keyword): > I have only the C99 standard in front of me, but its syntax should > be the same as ANSI, which is: > typedef-name: > identifier > and not, > typedef-name: > identifier1 identifier2... identifiern > The compiler is looking for a semicolon after, "fred," and your > example is lacking a semicolon after, "here," anyway. The compiler should never have been exposed to that typedef. It is not part of the C89 standard. > This is not the compiler's job - to demangle a possibly inconistent > type statement. It is the compiler header's job (Cygwin in this case) to not expose programs to non-C89 types when in ANSI mode. If you go and compile my code on some other C89 compiler, you should find that it works, unless it has the same bug, anyway. > It's the job of the parser and is potentially expensive > and invalid. By the way, this mailing list is exposing email addresses over at: http://www.omgili.com/mailinglist/cygwin/cygwin/com/0ce101c8240c3a5dea606501a8c0paul.html I'll ask them to stop doing that. I just got spammed. :-( Still, at least now I know where to find replies. :-) BFN. Paul. ----- Original Message ----- From: "Paul Edwards" To: Sent: Sunday, November 11, 2007 1:40 PM Subject: cygwin 1.5.24-2 gcc 3.4.4 stdio.h > I just downloaded cygwin 1.5.24-2 (just a couple of hours ago) and > compiled the following program with "gcc -ansi fred.c" > (NOTE the "-ansi" keyword): > > #define pid_t fred was here > > #include > > int main(void) > { > printf("hello, world\n"); > return (0); > } > > And got the following result: > > In file included from /usr/include/stdio.h:46, > from fred.c:3: > /usr/include/sys/types.h:180: error: parse error before "was" > In file included from /usr/include/sys/types.h:373, > from /usr/include/stdio.h:46, > from fred.c:3: > /usr/include/cygwin/types.h:146: error: parse error before "fred" > > > ie it is hitting a typedef for pid_t > > > This is the compiler version: > > gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) > Copyright (C) 2004 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > > Is "-ansi" not the correct thing to do to get pure ANSI C89 headers? > > BFN. Paul. > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/