[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ooc-960201



Hi.

I put the new sources on cognac.  The detection of uses of undefined
variables now works reliably (and is somewhat faster than the old
version).  A warning is emitted whenever a call to a local procedure
modifies a variable guarded by WITH, regardless of the type of the
assigned value.  
  And lots of bugs have been fixed.  I do hope that the number of bugs
in the front-end is finite.  Otherwise this may become very tiresome
in the long run ;-).

-- mva


ChangeLog from Jan 26 to Jan 31:

Wed Jan 31 20:42:08 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/SymbolTable.Mod (TypeInGroup):
	Added type groups grpPointer and grpProc, reject bogus
	groups that correspond to structure type ids.

	(InitPredef): Fixed formal paramter list of NEW and SYSTEM.NEW.

	* frontend/ParseStatm.Mod (CheckVariableParam): Fixed parameter checks.

	(RegisterSideEffects): Added warning when call to nested procedure
	modifies a variable that is guarded by a WITH.

	* frontend/ParseExpr.Mod (EvalDyadicOp, Expr):
	Fixed semantic checks for comparison between pointers
	resp. procs.

	(CondAnd, CondOr): Fixed conditional expressions that contain negated
	simple expressions.

	* frontend/GuardCond.Mod:
	Modified algorithms to decrease memory allocation and increase speed.

Tue Jan 30 19:17:37 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/Check.Mod (MergeUses): Fixed.

Mon Jan 29 21:03:08 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/doc/ParameterPassing:
	Added (short) description of results of enter instruction and operands
	of a procedure call.

	* frontend/Opcode.Mod:
	Changed instruction `zero'.  Updated descriptions of collect, reclaim,
	create-store, delete-store.

	* frontend/ParseStatm.Mod (AssignToVar):
	 Make sure that only one reclaim instruction is
	generated for a given $mem value.  Create copy instruction when
	assigning parameter attributes like address, type tag, and array
	length.

	(RegisterSideEffects): When a procedure call assigns to $mem, then
	generate the reclaim instruction before all other side-effects are
	registered.

Sun Jan 28 18:16:35 1996  Frank Copeland  <fjc@wossname.apana.org.au>

	* backend/m68k/lib/THISDIR, backend/m68k/OOCRev.Mod:
	*** empty log message ***

	* backend/m68k/OOC.Mod: - Based on oocrc.Mod from the 25/1/96 sources.

Sun Jan 28 12:54:47 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/UndefVar.Mod: Completely rewritten.

	* frontend/ParseExpr.Mod (Designator):
	Fixed position attributes for field selectors and array
	indices.  Fixed array index on undefined values.

	* frontend/ParseDecl.Mod (ProcDecl):
	Guard exit instruction by $return even if no procedure
	block exits.  Got rid of "may be used undefined" warnings.

	* frontend/Error.Mod: Enabled error suppression.

	* frontend/Attributes.Mod (Reclaim2Collect):
	New.  Given a reclaim instruction and a variable,
	find the variable's value that is passed to the corresponding collect
	instruction.
	(TracesToEmptyStore):  Moved from UndefVar.  Given a variable and a
	value of $store, determine if there exists a path through $store that
	doesn't write to this variable.

	(CleanupGReg): Remove results from enter instruction that correspond
	to nonlocal variables that are never read.

Fri Jan 26 20:07:16 1996  Michael van Acken  <acken@informatik.uni-kl.de>

	* frontend/GuardCond.Mod (CreateRegionPost):
	Oops, calculation of post conditions didn't scan
	all enclosing regions.