Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!mhuxl!houxm!houxz!vax135!cornell!uw-beaver!tektronix!hplabs!sri-unix!ron@BRL-TGR.ARPA From: ron@BRL-TGR.ARPA Newsgroups: net.unix-wizards Subject: Re: Bug in Unix System V C compiler Message-ID: <12193@sri-arpa.UUCP> Date: Mon, 6-Aug-84 11:06:34 EDT Article-I.D.: sri-arpa.12193 Posted: Mon Aug 6 11:06:34 1984 Date-Received: Fri, 10-Aug-84 01:45:38 EDT Lines: 22 From: Ron NatalieThe truth of the matter that with the system V compiler only 7 characters are significant. If you had done the test that the person reporting the bug had asked to, you would have seen the problem. The test had eight character identifiers, not nine as you used in your example. When you use two identifiers that differ only in the eighth character it generates a message saying the identifiers conflict. This is only slightly better than the earlier versions of the compiler that actually used the same symbol for both and caused the assembler's heart to break, issuing the message 'm 0012'. Not entirely obvious. This is all becuase the C compiler prepends it's variable names with _ making the eight character names nine characters and the assmebler only has eight characters of significance as well. One solution would be not to prefix the symbol with the underscore. This leads to other problems. The RSI compiler for the 370 did this. When you declare C variables to be things like R0 all hell breaks loose. -Ron