fnf@unisoft.UUCP (Fred Fish) (02/28/86)
Lattice C is currently the only C compiler that I know of (I tested 3 others) that accepts the following code fragment: main () { goto labl; labl: } All others required that the labl: be attached to a statement, even if only the null statement, as in: main () { goto labl; labl: ; } Note that this second usage is consistent with K&R page 63: "It (a label) can be attached to any *statement* (emphasis mine) in the same function as the goto." And on page 204: "Any statement may be preceded by label prefixes ..." "A null statement is useful to carry a label just before the } of a compound statement ..." Also, from "A C Reference Manual" by Harbison and Steele, page 199: "A label cannot appear by itself but must always be attached to a statement. If it is desired to place a label by itself, for example at the end of a compound statement, it may be attached to a null statement." This construct, a label without a statement, showed up in the amiga3d program recently posted to usenet's net.sources. -Fred =========================================================================== Fred Fish UniSoft Systems Inc, 739 Allston Way, Berkeley, CA 94710 USA {ucbvax,dual}!unisoft!fnf (415) 644 1230 TWX 11 910 366-2145 ===========================================================================