[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.