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

ooc-990621 & oo2c-1.4.4



Changes:

o Export rules were slightly *cough* messed up.  If a type name was
  not exported, but implicitly used in the symbol file, the compiler
  did not complain when a client module used it.

o Fixed loophole in handling of forward declared types.  A declaration
  sequence like "TYPE A = RECORD b: POINTER TO B END; B = A;" created
  an invalid symbol table, and subsequently broken C definitions.

o Fixed handling of certain interface types: For an open array value
  parameter with NO_LENGTH_TAG, the compiler cannot create a local
  copy of the array argument.  This means that it cannot guarantee the
  normal semantics of value parameters: local modifications to the
  parameter stay local, and modifications to the variable that was
  passed to the parameter are not reflected in the parameter's local
  value.  Instead of the standard behaviour, the compiler treats the
  parameter like a read-only variable and prevents local changes to
  the parameter's value.  But changes to the array variable, that was
  passed to the parameter in the first place, are reflected by the
  parameter's value.  This resembles the semantics of the keyword
  "const", when applied to C pointer types.

o Compiles again under CygWin32.

I have also fixed the libadt sources so that they compile with the
current compiler.  See http://pweb.de.uu.net/vanacken.do/ooc/

Have fun.

-- mva