[pups] Re: v7 crypt(3)

Michael Davidson MichaelDavidson at pacbell.net
Sat Sep 21 11:11:32 AEST 2002

Warren Toomey wrote:

>>static	char	PC1_D[] {
>>	63,55,47,39,31,23,15,
>>	 7,62,54,46,38,30,22,
>>	14, 6,61,53,45,37,29,
>>	21,13, 5,28,20,12, 4,
>>That wasn't legal syntax, was it?  There should be an '='
>>between [] and {, as in the rest of the file, no?
>I just tried to compile the code with the V7 compiler and it complained.
>Maybe it was legal in V6 and they used the .o file from there and didn't
>recompile it.
Actually I'm surprised that the V7 compiler would complain about this.

I seem to recall that there was still quite a lot of code in V7
(including the compiler itself) which didn't have an '=' before
the initialiser.

I don't have a V7 system to hand right now, but looking at the
compiler source appears to confirm that the '=' was still optional.

In extdef() at around line 69 of c02.c there is:

	if (o!=ASSIGN)
		peeksym = o;

... at this point in the code we have just processed an external
definition which is not a function and which is not followed by
either a comma or a semicolon and are about to attempt to parse
what follows as an initialiser. If the next symbol is '=' the
compiler swallows it, otherwise it pushes it back and continues
with parsing the initialiser.

So it certainly *looks* as if the V7 compiler didn't require the '='.

Perhaps you were using pcc?

More information about the TUHS mailing list