X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCast.h;h=fa0b62314c2c74f9f150e2d1402587a4efbef983;hb=20769c61afe7ca2776c90113a7c6f5f152e91987;hp=7620e47f45f4a80185594826a9dc3115525627a6;hpb=c1156eac66b833f3c65dc82c3e92bd21004e2150;p=fw%2Fsdcc diff --git a/src/SDCCast.h b/src/SDCCast.h index 7620e47f..fa0b6231 100644 --- a/src/SDCCast.h +++ b/src/SDCCast.h @@ -91,6 +91,7 @@ typedef struct ast unsigned literalFromCast; /* true if this is an EX_VALUE of LITERAL * type resulting from a typecast. */ + int argreg; /* argreg number when operand type == EX_OPERAND */ } values; @@ -142,6 +143,8 @@ ast; #define AST_VALUE(x) (x->opval.val) #define AST_VALUES(x,y) (x->values.y) #define AST_FOR(x,y) x->values.forVals.y +#define AST_ARGREG(x) x->values.argreg + #define IS_AST_PARAM(x) (IS_AST_OP(x) && x->opval.op == PARAM) #define CAN_EVAL(x) ( x == '[' || x == '.' || x == PTR_OP || \ @@ -180,6 +183,7 @@ ast *newAst_STMNT (unsigned val); void initAst (); ast *newNode (long, ast *, ast *); ast *copyAst (ast *); +ast *removeIncDecOps (ast *); value *sizeofOp (sym_link *); value *evalStmnt (ast *); ast *createFunction (symbol *, ast *); @@ -187,7 +191,6 @@ ast *createBlock (symbol *, ast *); ast *createLabel (symbol *, ast *); ast *createCase (ast *, ast *, ast *); ast *createDefault (ast *, ast *); -ast *optimizeCompare (ast *); ast *forLoopOptForm (ast *); ast *argAst (ast *); ast *resolveSymbols (ast *); @@ -199,6 +202,7 @@ ast *createFor (symbol *, symbol *, symbol *, symbol *, ast *, ast *, ast *, ast void eval2icode (ast *); value *constExprValue (ast *, int); bool constExprTree (ast *); +int setAstLineno (ast *, int); symbol *funcOfType (char *, sym_link *, sym_link *, int, int); symbol * funcOfTypeVarg (char *, char * , int , char **); ast *initAggregates (symbol *, initList *, ast *);