Fixes issue #5
This commit is contained in:
parent
09501d22fd
commit
62d1695632
|
@ -755,7 +755,7 @@ void ExpressionPrefixOperator(struct ParseState *Parser,
|
||||||
int Size = TypeSize(TopValue->Typ->FromType, 0, true);
|
int Size = TypeSize(TopValue->Typ->FromType, 0, true);
|
||||||
struct Value *StackValue;
|
struct Value *StackValue;
|
||||||
void *ResultPtr;
|
void *ResultPtr;
|
||||||
if (TopValue->Val->Pointer == NULL)
|
if (Op != TokenUnaryNot && TopValue->Val->Pointer == NULL)
|
||||||
ProgramFail(Parser, "a. invalid use of a NULL pointer");
|
ProgramFail(Parser, "a. invalid use of a NULL pointer");
|
||||||
if (!TopValue->IsLValue)
|
if (!TopValue->IsLValue)
|
||||||
ProgramFail(Parser, "can't assign to this");
|
ProgramFail(Parser, "can't assign to this");
|
||||||
|
@ -768,6 +768,10 @@ void ExpressionPrefixOperator(struct ParseState *Parser,
|
||||||
TopValue->Val->Pointer =
|
TopValue->Val->Pointer =
|
||||||
(void*)((char*)TopValue->Val->Pointer-Size);
|
(void*)((char*)TopValue->Val->Pointer-Size);
|
||||||
break;
|
break;
|
||||||
|
case TokenUnaryNot:
|
||||||
|
TopValue->Val->Pointer =
|
||||||
|
(void*)((char*)(!TopValue->Val->Pointer));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ProgramFail(Parser, "invalid operation");
|
ProgramFail(Parser, "invalid operation");
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue