* src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through...
[fw/sdcc] / src / SDCCsymt.h
index 02206c009cad0115a83acae1d23d622a94bd0e8a..b253154f955047f3d373b21e07778de117e012bc 100644 (file)
@@ -25,7 +25,8 @@
 #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"
 
 
@@ -122,9 +123,9 @@ typedef struct specifier
 
     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 */
@@ -182,7 +183,7 @@ sym_link;
 
 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 */
@@ -386,7 +387,7 @@ extern sym_link *__multypes[3][2];
 /* 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]