Subject: Re: cryptosrc-intl goto tags are a mess
To: Sean Doran <firstname.lastname@example.org>
From: Olaf Seibert <email@example.com>
Date: 02/06/2000 22:49:16
On Thu 03 Feb 2000 at 02:29:43 +0100, Sean Doran wrote:
> In -current's cryptosrc-intl, there are a bunch of "goto out;" ... "out:"
> statements and tags, and unfortunately many of these conflict with
> a variable called "out" in the same scope. -:(
A compiler that refuses to compile that is not a C compiler. K&R2 explicitly
mentions (in A9.1):
Because labels have their own name space, they do not interfere with
other iderntifiers and cannot be redeclared.
The ISO standard for C says the same more formally in 18.104.22.168 Name
spaces of identifiers.
> For example:
> /usr/src/crypto-intl/lib/libkrb5/../../dist/heimdal/lib/krb5/rd_req.c: In function `krb5_rd_req':
> /usr/src/crypto-intl/lib/libkrb5/../../dist/heimdal/lib/krb5/rd_req.c:373: `out' redeclared as different kind of symbol
> /usr/src/crypto-intl/lib/libkrb5/../../dist/heimdal/lib/krb5/rd_req.c:418: previous declaration of `out'
> *** Error code 1
> Substituting another string for the "out" targets, apparently confined
> to that directory (lib/krb5/../../dist/heimdal/lib/krb5/), makes things
> build happily.
I suggest your compiler be fixed. The gcc that comes with 1.4.1 does not
complain about this.
Script started on Sun Feb 6 22:45:24 2000
azenomei:~/News$ gcc -v
Using builtin specs.
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
azenomei:~/News$ cat c.c
l: goto l;
azenomei:~/News$ gcc -c c.c
Script done on Sun Feb 6 22:45:34 2000
___ Olaf 'Rhialto' Seibert - firstname.lastname@example.org. -- If one tells the truth,
\X/ .kun.nl -- one is sure, sooner or later, to be found out. (Oscar Wilde)