#define SDCCSYMT_H
#define MAX_NEST_LEVEL 256
-#define SDCC_NAME_MAX 64
+#define SDCC_SYMNAME_MAX 64
+#define SDCC_NAME_MAX 3*SDCC_SYMNAME_MAX // big enough for _<func>_<var>_etc
#include "SDCChasht.h"
union
{ /* Values if constant or enum */
- int v_int; /* int and char values */
+ short int v_int; /* int and char values */
char *v_char; /* character string */
- unsigned v_uint; /* unsigned int const value */
+ unsigned short v_uint; /* unsigned int const value */
long v_long; /* long constant value */
unsigned long v_ulong; /* unsigned long constant val */
double v_float; /* floating point constant value */
typedef struct symbol
{
- char name[SDCC_NAME_MAX + 1]; /* Input Variable Name */
+ char name[SDCC_SYMNAME_MAX + 1]; /* Input Variable Name */
char rname[SDCC_NAME_MAX + 1]; /* internal name */
short level; /* declration lev,fld offset */
/* Dims: to/from float, BYTE/WORD/DWORD, SIGNED/USIGNED */
extern symbol *__conv[2][3][2];
/* Dims: shift left/shift right, BYTE/WORD/DWORD, SIGNED/UNSIGNED */
-symbol *__rlrr[2][3][2];
+extern symbol *__rlrr[2][3][2];
#define CHARTYPE __multypes[0][0]
#define UCHARTYPE __multypes[0][1]