home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!paladin.american.edu!gatech!usenet.ins.cwru.edu!agate!ames!saimiri.primate.wisc.edu!crdgw1!rdsunx.crd.ge.com!bart!volpe
- From: volpe@bart.NoSubdomain.NoDomain (Christopher R Volpe)
- Newsgroups: comp.std.c
- Subject: Re: Standard conformance and GCC 2.3.3
- Message-ID: <1992Dec31.150047.22321@crd.ge.com>
- Date: 31 Dec 92 15:00:47 GMT
- References: <1992Dec30.011211.11409@netcom.com> <C02I8I.58I@jrd.dec.com> <1992Dec30.173634.15487@crd.ge.com> <1992Dec30.203555.3615@netcom.com>
- Sender: volpe@bart (Christopher R Volpe)
- Reply-To: volpe@ausable.crd.ge.com
- Organization: GE Corporate Research & Development
- Lines: 56
- Nntp-Posting-Host: bart.crd.ge.com
-
- In article <1992Dec30.203555.3615@netcom.com>, rfg@netcom.com (Ronald F. Guilmette) writes:
- |> In article <1992Dec30.173634.15487@crd.ge.com> volpe@ausable.crd.ge.com writes:
- |> +In article <C02I8I.58I@jrd.dec.com>, diamond@jit533.jit.dec.com (Norman Diamond) writes:
- |> +|> >-----------------------------------------------------------------------------
- |> +|> >#9) GCC fails to issue errors in cases where a static function is referenced
- |> +|> > but never defined, even when the -pedantic-errors option is used.
- |> +|> >static void s (); int main () { s (); return 1; }
- |> +|>
- |> +|> Again I see no violation of a constraint. Furthermore, if you returned
- |> +
- |> +Me neither, but...
- |>
- |> See ANSI section 3.7, constraints.
-
- Opps. You're right. Thanks.
-
- |>
- |> +|> >-----------------------------------------------------------------------------
- |> +|> >#20) GCC incorrectly issues errors for the following standard-conformant
- |> +|> > ANSI C code when the -pedantic-errors option is used.
- |> +|> >static enum E1 { red, green, blue};
- |> +|> >static struct S1 { int member; };
- |> +|> >static union U2 { int member; };
- |> +|> >void foobar () {
- |> +|> > auto enum E2 { red, green, blue };
- |> +|> > auto struct S2 { int member; };
- |> +|> > auto union U2 { int member; };
- |> +|> >}
- |> +|>
- |> +|> Spurious diagnostics are allowed, though now they return to the status of
- |> +|> unfriendly and misleading. What happened when you tried executing it?
- |> +
- |> +These diagnostics are prefectly friendly and very helpful. Since the
- |> +declarations allocate no storage (there's no object being defined), a
- |> +storage class specifier is useless and superfluous.
- |>
- |> I disagree violently with the assertion that the issuance of errors for
- |> perfecly "standard conformant" code is "perfectly friendly and very helpful".
- |> Anyone who says such a thing obviously does not port code for a living!
-
- I disagree violently with the assertion that any errors one might make
- would necessarily result in non-standard-conformant code. Just because
- it's conformant doesn't mean it's intended. Anyone who says such a thing
- obviously never writes original code for a living, or otherwise is a
- complete programming God who has never made a mistake and never found
- lint to be the least bit useful.
-
- I would *never* write the above piece of code intentionally, no matter
- how conformant it is, and I would appreciate some kind of warning that
- I had obviously omitted some variable names in those declarations.
-
- --
- ==================
- Chris Volpe
- G.E. Corporate R&D
- volpecr@crd.ge.com
-