- fixed: Readonly pointers never were flagged as such.

- fixed: Assignment from a readonly to a read-allowed pointer must be an error.
- made GetDefaultByType a builtin so that it can do proper type assignment to the result, which for a function would be problematic in this case, even if automatic type deduction was implemented. Since this returns the class defaults which are not a real object, the result cannot be subjected to a type cast.
- error out if a type cast of a readonly pointer is attempted.
- fixed: FxBooleanNot could clobber a local variable because it used the source register to manipulate the result.
This commit is contained in:
Christoph Oelckers 2016-11-27 15:50:58 +01:00
commit f409a24d2d
7 changed files with 125 additions and 13 deletions

View file

@ -289,6 +289,7 @@ enum EFxType
EFX_NamedNode,
EFX_GetClass,
EFX_ColorLiteral,
EFX_GetDefaultByType,
EFX_COUNT
};
@ -1542,6 +1543,24 @@ public:
ExpEmit Emit(VMFunctionBuilder *build);
};
//==========================================================================
//
// FxFlopFunctionCall
//
//==========================================================================
class FxGetDefaultByType : public FxExpression
{
FxExpression *Self;
public:
FxGetDefaultByType(FxExpression *self);
~FxGetDefaultByType();
FxExpression *Resolve(FCompileContext&);
ExpEmit Emit(VMFunctionBuilder *build);
};
//==========================================================================
//
// FxColorLiteral