diff --git a/intrinsic.c b/intrinsic.c index 34edbf3..ab7d2fd 100644 --- a/intrinsic.c +++ b/intrinsic.c @@ -175,16 +175,14 @@ void IntrinsicInit(struct Table *GlobalTable) } } -#if 0 void IntrinsicHostPrintf(const char *Format, ...) { va_list Args; va_start(Args, Format); - vStrPrintf(Format, Args); + IntrinsicHostVPrintf(Format, Args); va_end(Args); } -#endif /* printf for compiler error reporting */ void IntrinsicHostVPrintf(const char *Format, va_list Args) diff --git a/picoc.c b/picoc.c index 5da516f..8076d40 100644 --- a/picoc.c +++ b/picoc.c @@ -15,11 +15,11 @@ void ProgramFail(struct ParseState *Parser, const char *Message, ...) va_list Args; if (Parser != NULL) - printf("%s:%d: ", Parser->FileName, Parser->Line); + IntrinsicHostPrintf("%s:%d: ", Parser->FileName, Parser->Line); va_start(Args, Message); - vprintf(Message, Args); - printf("\n"); + IntrinsicHostVPrintf(Message, Args); + IntrinsicHostPrintf("\n"); exit(1); } @@ -28,10 +28,10 @@ void LexFail(struct LexState *Lexer, const char *Message, ...) { va_list Args; - printf("%s:%d: ", Lexer->FileName, Lexer->Line); + IntrinsicHostPrintf("%s:%d: ", Lexer->FileName, Lexer->Line); va_start(Args, Message); - vprintf(Message, Args); - printf("\n"); + IntrinsicHostVPrintf(Message, Args); + IntrinsicHostPrintf("\n"); exit(1); } diff --git a/picoc.h b/picoc.h index 1902118..a3c3443 100644 --- a/picoc.h +++ b/picoc.h @@ -262,6 +262,7 @@ struct ValueType *TypeGetMatching(struct ParseState *Parser, struct ValueType *P /* intrinsic.c */ void IntrinsicInit(struct Table *GlobalTable); +void IntrinsicHostPrintf(const char *Format, ...); void IntrinsicHostVPrintf(const char *Format, va_list Args); /* heap.c */ diff --git a/table.c b/table.c index 08f6af0..9995f13 100644 --- a/table.c +++ b/table.c @@ -8,7 +8,7 @@ char *StrEmpty = NULL; /* initialise the shared string system */ void TableInit() { - TableInit(&StringTable, &StringHashTable[0], STRING_TABLE_SIZE, TRUE); + TableInitTable(&StringTable, &StringHashTable[0], STRING_TABLE_SIZE, TRUE); StrEmpty = TableStrRegister(""); } diff --git a/type.c b/type.c index 01bd59d..8755eaf 100644 --- a/type.c +++ b/type.c @@ -97,7 +97,7 @@ void TypeInit() TypeAddBaseType(&MacroType, TypeMacro, sizeof(int)); TypeAddBaseType(&Type_Type, TypeType, sizeof(struct ValueType *)); TypeAddBaseType(&CharType, TypeChar, sizeof(char)); - CharPtrType = TypeAdd(NULL, &CharType, TypePointer, 0, StrEmpty, sizeof(char)); + CharPtrType = TypeAdd(NULL, &CharType, TypePointer, 0, StrEmpty, sizeof(struct PointerValue)); CharArrayType = TypeAdd(NULL, &CharType, TypeArray, 0, StrEmpty, sizeof(char)); }