[comp.sys.ibm.pc] YATCB

toma@tekgvs.UUCP (06/19/87)

Just for the exercise I tried compiling the microemacs 3.8 that recently
came in on another newsgroup.  This program provides its own improved (?)
version of itoa and ltoa.  Unfortunately the Turbo C math library produces
a multiple definition error -- I guess they were put in the same module as
some other functions.  Of course this does speed up linking, but at what
cost?

Perhaps Borland should have delayed the introduction of Turbo C a while 
longer?

Tom Almy
(Still prefer MSC+Epsilon+Don Knellers Make)

ralf@b.gp.cs.cmu.edu (Ralf Brown) (08/04/87)

I was (trying to) recompile NetHack in the integrated environment, and found 
the following bug:
	if the maximum number of warnings is set to greater than 127, the
	first warning will immediately be followed by the error
	"Too many warnings".
[Looks like someone used signed char instead of unsigned char...]

I also found a discrepancy between TC and TCC--NetHack got compile-time errors
in the integrated environment but not from TCC!  The integrated environment
complained about old-style function declarations in files for which one of the
include files contained a prototype.  Example:
	PCUNIX.C contains the declaration
		extern time_t time();
	TIME.H (included by PCUNIX.C) contains the prototype
		time_t _Cdecl time(time_t *timer);
PCUNIX compiles fine with TCC, but gets an error on the above  declaration in
the integrated environment.

-- 
-=-=-=-=-=-=-=-= {harvard,seismo,ucbvax}!b.gp.cs.cmu.edu!ralf =-=-=-=-=-=-=-=-
ARPAnet: RALF@B.GP.CS.CMU.EDU            BITnet: RALF%B.GP.CS.CMU.EDU@CMUCCVMA
AT&Tnet: (412) 268-3053 (school)         FIDOnet: Ralf Brown at 129/31
	        DISCLAIMER?  Who ever said I claimed anything? 
"I do not fear computers.  I fear the lack of them..." -- Isaac Asimov

toma@tekgvs.TEK.COM (Tom Almy) (08/05/87)

I discovered this bug in version 1.0 (of course!).  It is demostrated
in the following program, the simplest example I could muster,
which will produce the "Irreducible Expression Tree" fatal compilation 
error.  

struct {
	unsigned foo:1;
} bar ;

x()
{
	bar.foo++;
}


The fix (besides not using bit fields) is to replace "bar.foo++" with
"bar.foo += 1".



Tom Almy

chips@usfvax2.UUCP (Chip Salzenberg) (08/05/87)

In article <74@b.gp.cs.cmu.edu>, ralf@b.gp.cs.cmu.edu.UUCP writes:
> I was (trying to) recompile NetHack in the integrated environment, and found 
> the following bug:
> 	if the maximum number of warnings is set to greater than 127, the
> 	first warning will immediately be followed by the error
> 	"Too many warnings".
> [Looks like someone used signed char instead of unsigned char...]

Try setting max warnings to zero; that might mean "don't stop at all".

> I also found a discrepancy between TC and TCC--NetHack got compile-time errors
> in the integrated environment but not from TCC!  The integrated environment
> complained about old-style function declarations [...]

This may be because you have changed warning flags in the integrated
environment (TCCONFIG.TC) but not for the command line compiler (TURBOC.CFG).
Try running "CNVTCFG TCCONFIG.TC TURBOC.CFG", then edit TURBOC.CFG since the
converter always seems to mess up slightly. :-)

> "I do not fear computers.  I fear the lack of them..." -- Isaac Asimov

I like this quote.
-- 
Chip Salzenberg            UUCP: "uunet!ateng!chip"  or  "chips@usfvax2.UUCP"
A.T. Engineering, Tampa    Fidonet: 137/42    CIS: 73717,366
"Use the Source, Luke!"    My opinions do not necessarily agree with anything.