Peter N Lewis wrote"
With methods-always-virtual, if a method, GetObj, returns an object, and you call a method directly from the call to GetObj, gpc fails with an error.
Ie, obj.GetObj.Method( whatever ) fails.
Using a temporary variable works fine, ie:
obj2 := obj.GetObj; obj2.Method( whatever )
compiles without problems.
The following should fix the problem:
--- p.nn3/types.c 2005-06-22 06:22:32.000000000 +0200 +++ p/types.c 2005-07-14 03:35:44.000000000 +0200 @@ -1893,7 +1893,8 @@ datum = undo_schema_dereference (probably_call_function (datum)); type = TREE_TYPE (datum); } - else if (TREE_CODE (type) == POINTER_TYPE && PASCAL_TYPE_CLASS (type)) + + if (TREE_CODE (type) == POINTER_TYPE && PASCAL_TYPE_CLASS (type)) { // datum = build_pascal_pointer_reference (datum); datum = build_indirect_ref (datum, NULL);