/*****************************************************************************/
/* */
-/* funcdesc.h */
+/* funcdesc.h */
/* */
-/* Function descriptor structure for the cc65 C compiler */
+/* Function descriptor structure for the cc65 C compiler */
/* */
/* */
/* */
-/* (C) 2000 Ullrich von Bassewitz */
-/* Wacholderweg 14 */
-/* D-70597 Stuttgart */
-/* EMail: uz@musoftware.de */
+/* (C) 2000-2008 Ullrich von Bassewitz */
+/* Roemerstrasse 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/*****************************************************************************/
-/* struct FuncDesc */
+/* struct FuncDesc */
/*****************************************************************************/
/* Masks for the Flags field in FuncDesc */
-#define FD_IMPLICIT 0x0001U /* Implicitly declared function */
-#define FD_EMPTY 0x0002U /* Function with empty param list */
-#define FD_VOID_PARAM 0x0004U /* Function with a void param list */
-#define FD_VARIADIC 0x0008U /* Function with variable param list */
-#define FD_FASTCALL 0x0010U /* __fastcall__ function */
-#define FD_OLDSTYLE 0x0020U /* Old style (K&R) function */
-#define FD_UNNAMED_PARAMS 0x0040U /* Function has unnamed params */
+#define FD_NONE 0x0000U /* No flags */
+#define FD_EMPTY 0x0001U /* Function with empty param list */
+#define FD_VOID_PARAM 0x0002U /* Function with a void param list */
+#define FD_VARIADIC 0x0004U /* Function with variable param list */
+#define FD_OLDSTYLE 0x0010U /* Old style (K&R) function */
+#define FD_OLDSTYLE_INTRET 0x0020U /* K&R func has implicit int return */
+#define FD_UNNAMED_PARAMS 0x0040U /* Function has unnamed params */
+#define FD_CALL_WRAPPER 0x0080U /* This function is used as a wrapper */
/* Bits that must be ignored when comparing funcs */
-#define FD_IGNORE (FD_IMPLICIT | FD_UNNAMED_PARAMS)
+#define FD_IGNORE (FD_OLDSTYLE | FD_OLDSTYLE_INTRET | FD_UNNAMED_PARAMS | FD_CALL_WRAPPER)
/* Function descriptor */
typedef struct FuncDesc FuncDesc;
struct FuncDesc {
- unsigned Flags; /* Bitmapped flags FD_... */
- struct SymTable* SymTab; /* Symbol table */
- struct SymTable* TagTab; /* Symbol table for structs/enums */
- unsigned ParamCount; /* Number of parameters */
- unsigned ParamSize; /* Size of the parameters */
+ unsigned Flags; /* Bitmapped flags FD_... */
+ struct SymTable* SymTab; /* Symbol table */
+ struct SymTable* TagTab; /* Symbol table for structs/enums */
+ unsigned ParamCount; /* Number of parameters */
+ unsigned ParamSize; /* Size of the parameters */
+ struct SymEntry* LastParam; /* Pointer to last parameter */
+ struct SymEntry* WrappedCall; /* Pointer to the WrappedCall */
+ unsigned char WrappedCallData;/* The WrappedCall's user data */
};
/*****************************************************************************/
-/* Code */
+/* Code */
/*****************************************************************************/
FuncDesc* NewFuncDesc (void);
/* Create a new symbol table with the given name */
-void FreeFuncDesc (FuncDesc* E);
+void FreeFuncDesc (FuncDesc* D);
/* Free a function descriptor */
/* End of funcdesc.h */
-#endif
-
-
+#endif