[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