-------------------------------------------------------------------------*/
#include "common.h"
-#include "newalloc.h"
int currLineno = 0;
set *astList = NULL;
ast *ex;
static int oldLineno = 0;
- Safe_calloc (1, ex, sizeof (ast));
+ ex = Safe_alloc ( sizeof (ast));
ex->type = type;
ex->lineno = (noLineno ? oldLineno : yylineno);
ast *ex;
static int oldLineno = 0;
- ex = Safe_calloc (1, sizeof (ast));
+ ex = Safe_alloc ( sizeof (ast));
ex->type = type;
ex->lineno = (noLineno ? oldLineno : yylineno);
break;
case INLINEASM:
- dest->values.inlineasm = Safe_calloc (1, strlen (src->values.inlineasm) + 1);
+ dest->values.inlineasm = Safe_alloc (strlen (src->values.inlineasm) + 1);
strcpy (dest->values.inlineasm, src->values.inlineasm);
break;
if (!src)
return NULL;
- dest = Safe_calloc (1, sizeof (ast));
+ dest = Safe_alloc ( sizeof (ast));
dest->type = src->type;
dest->lineno = src->lineno;
/* if defined parameters ended but actual parameters */
/* exist and this is not defined as a variable arg */
- /* also check if statckAuto option is specified */
- if ((!defParm) && actParm && (!func->hasVargs) &&
- !options.stackAuto && !IS_RENT (fetype))
+ /* also check if statckAuto option is specified */ // jwk: WHY?
+ if ((!defParm) && actParm && (!func->hasVargs)
+ /* && !options.stackAuto && !IS_RENT (fetype) */)
{
werror (E_TOO_MANY_PARMS);
return 1;
/* the parameter type must be at least castable */
if (compareType (defParm->type, actParm->ftype) == 0) {
- werror (W_INCOMPAT_CAST);
+ werror (E_INCOMPAT_TYPES);
fprintf (stderr, "type --> '");
printTypeChain (actParm->ftype, stderr);
fprintf (stderr, "' ");
fprintf (stderr, "assigned to type --> '");
printTypeChain (defParm->type, stderr);
fprintf (stderr, "'\n");
+ return 1;
}
/* if the parameter is castable then add the cast */
{
sym_link *ltc = (tree->right ? RTYPE (tree) : LTYPE (tree));
COPYTYPE (TTYPE (tree), TETYPE (tree), ltc);
- if (!tree->initMode && IS_CONSTANT (TETYPE (tree)))
+ if (!tree->initMode && IS_CONSTANT(TETYPE(tree)))
werror (E_CODE_WRITE, "++/--");
if (tree->right)
/* make sure the type is complete and sane */
checkTypeSanity(LETYPE(tree), "(cast)");
-#if 1
+#if 0
/* if the right is a literal replace the tree */
if (IS_LITERAL (RETYPE (tree))) {
if (!IS_PTR (LTYPE (tree))) {
fprintf (stderr, "'\n");
}
- /* extra checks for pointer types */
- if (IS_PTR (LTYPE (tree)) && IS_PTR (RTYPE (tree)) &&
- !IS_GENPTR (LTYPE (tree)))
- {
- if (DCL_TYPE (LTYPE (tree)) != DCL_TYPE (RTYPE (tree)))
- werror (W_PTR_ASSIGN);
- }
-
TETYPE (tree) = getSpec (TTYPE (tree) =
LTYPE (tree));
RRVAL (tree) = 1;
LLVAL (tree) = 1;
if (!tree->initMode ) {
- if (IS_CONSTANT (LETYPE (tree))) {
- werror (E_CODE_WRITE, " ");
- }
+ if ((IS_SPEC(LETYPE(tree)) && IS_CONSTANT (LETYPE (tree))))
+ werror (E_CODE_WRITE, " ");
}
if (LRVAL (tree))
{