diff --git a/engine/qclib/qcc_pr_comp.c b/engine/qclib/qcc_pr_comp.c index ccb4aa106..54498a23b 100644 --- a/engine/qclib/qcc_pr_comp.c +++ b/engine/qclib/qcc_pr_comp.c @@ -9133,8 +9133,13 @@ void QCC_PR_ParseDefs (char *classname) i = 0; do { - if (QCC_PR_CheckImmediate("0")) + if (pr_token_type == tt_immediate && ( + (pr_immediate_type == type_integer && pr_immediate._int == 0) || + (pr_immediate_type == type_float && pr_immediate._float == 0))) + { + QCC_PR_Lex(); G_FUNCTION(def->ofs+i) = 0; + } else { name = QCC_PR_ParseName (); diff --git a/engine/qclib/qcc_pr_lex.c b/engine/qclib/qcc_pr_lex.c index 43e133164..286da96f6 100644 --- a/engine/qclib/qcc_pr_lex.c +++ b/engine/qclib/qcc_pr_lex.c @@ -2419,7 +2419,7 @@ int QCC_PR_CheakCompConst(void) if (!strncmp(pr_file_p, "__NULL__", 8)) { static char retbuf[256]; - sprintf(retbuf, "~0"); + sprintf(retbuf, "0i"); pr_file_p = retbuf; QCC_PR_Lex(); //translate the macro's value pr_file_p = oldpr_file_p+8;