Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cwjcc!hal!ncoast!allbery
From: allbery@ncoast.UUCP (Brandon S. Allbery)
Newsgroups: comp.sys.ibm.pc
Subject: Re: Turbo C 1.5 malloc bug?
Message-ID: <13216@ncoast.UUCP>
Date: 6 Dec 88 23:41:00 GMT
References: <3960@omepd>
Reply-To: allbery@ncoast.UUCP (Brandon S. Allbery)
Followup-To: comp.sys.ibm.pc
Distribution: na
Organization: Cleveland Public Access UN*X, Cleveland, Oh
Lines: 33
As quoted from <3960@omepd> by jhunt@omews3.intel.com (Jim Hunt):
+---------------
| I have been programming with Turbo C 1.5 recently and have found what appears
| to be a bug in the code generated for a malloc call. USUALLY the code that
| is generated looks something like this:
|
| push ax
| call far malloc
| pop cx
| mov [bp+something],ax
| mov [bp+something+2],dx
|
| However, sometimes the generated code looks like this:
|
| push ax
| call far malloc
| pop cx
| cwd
| mov [bp+x],ax
| mov [bp+x+2],dx
+---------------
As a guess, I'd say that the latter occurs when you forget to declare
malloc() as returning "char *" or "char far *". Remember that sizeof (int)
!= sizeof (char *)....
++Brandon
--
Brandon S. Allbery, comp.sources.misc moderator and one admin of ncoast PA UN*X
uunet!hal.cwru.edu!ncoast!allbery ncoast!allbery@hal.cwru.edu
allberyb@skybridge.sdi.cwru.edu allbery@uunet.uu.net
comp.sources.misc is moving off ncoast -- please do NOT send submissions direct
Send comp.sources.misc submissions to comp-sources-misc@.