* src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
[fw/sdcc] / src / SDCCmain.c
index 4fef51b961e975bc47ba310f287e30ffcbeda982..784f2913ced4504c09b9e25911367bb08c9a8df5 100644 (file)
 /* REMOVE ME!!! */
 extern int yyparse (void);
 
-FILE *srcFile;                 /* source file          */
-char *fullSrcFileName;         /* full name for the source file; */
-                               /* can be NULL while c1mode or linking without compiling */
-char *fullDstFileName;         /* full name for the output file; */
-                               /* only given by -o, otherwise NULL */
-char *dstFileName;             /* destination file name without extension */
-char *dstPath = "";            /* path for the output files; */
-                               /* "" is equivalent with cwd */
-char *moduleNameBase;          /* module name base is source file without path and extension */
+FILE *srcFile;                  /* source file          */
+char *fullSrcFileName;          /* full name for the source file; */
+                                /* can be NULL while c1mode or linking without compiling */
+char *fullDstFileName;          /* full name for the output file; */
+                                /* only given by -o, otherwise NULL */
+char *dstFileName;              /* destination file name without extension */
+char *dstPath = "";             /* path for the output files; */
+                                /* "" is equivalent with cwd */
+char *moduleNameBase;           /* module name base is source file without path and extension */
                                 /* can be NULL while linking without compiling */
-char *moduleName;              /* module name is same as module name base, but with all */
-                               /* non-alphanumeric characters replaced with underscore */
+char *moduleName;               /* module name is same as module name base, but with all */
+                                /* non-alphanumeric characters replaced with underscore */
 int currRegBank = 0;
 int RegBankUsed[4] = {1, 0, 0, 0}; /*JCF: Reg Bank 0 used by default*/
 struct optimize optimize;
@@ -89,46 +89,47 @@ int ds390_jammed = 0;
 char scratchFileName[PATH_MAX];
 char buffer[PATH_MAX * 2];
 
-#define OPTION_HELP    "-help"
-
-#define LENGTH(_a)     (sizeof(_a)/sizeof(*(_a)))
-
-#define OPTION_STACK_8BIT      "--stack-8bit"
-#define OPTION_OUT_FMT_IHX     "--out-fmt-ihx"
-#define OPTION_LARGE_MODEL     "--model-large"
-#define OPTION_MEDIUM_MODEL    "--model-medium"
-#define OPTION_SMALL_MODEL     "--model-small"
-#define OPTION_FLAT24_MODEL    "--model-flat24"
-#define OPTION_DUMP_ALL                "--dumpall"
-#define OPTION_PEEP_FILE       "--peep-file"
-#define OPTION_LIB_PATH                "--lib-path"
-#define OPTION_XSTACK_LOC      "--xstack-loc"
-#define OPTION_CALLEE_SAVES    "--callee-saves"
-#define OPTION_STACK_LOC       "--stack-loc"
-#define OPTION_XRAM_LOC                "--xram-loc"
-#define OPTION_IRAM_SIZE       "--iram-size"
-#define OPTION_VERSION         "--version"
-#define OPTION_DATA_LOC                "--data-loc"
-#define OPTION_CODE_LOC                "--code-loc"
-#define OPTION_IDATA_LOC       "--idata-loc"
+#define OPTION_HELP     "-help"
+
+#define LENGTH(_a)      (sizeof(_a)/sizeof(*(_a)))
+
+#define OPTION_STACK_8BIT       "--stack-8bit"
+#define OPTION_OUT_FMT_IHX      "--out-fmt-ihx"
+#define OPTION_LARGE_MODEL      "--model-large"
+#define OPTION_MEDIUM_MODEL     "--model-medium"
+#define OPTION_SMALL_MODEL      "--model-small"
+#define OPTION_FLAT24_MODEL     "--model-flat24"
+#define OPTION_DUMP_ALL         "--dumpall"
+#define OPTION_PEEP_FILE        "--peep-file"
+#define OPTION_LIB_PATH         "--lib-path"
+#define OPTION_XSTACK_LOC       "--xstack-loc"
+#define OPTION_CALLEE_SAVES     "--callee-saves"
+#define OPTION_STACK_LOC        "--stack-loc"
+#define OPTION_XRAM_LOC         "--xram-loc"
+#define OPTION_IRAM_SIZE        "--iram-size"
+#define OPTION_VERSION          "--version"
+#define OPTION_DATA_LOC         "--data-loc"
+#define OPTION_CODE_LOC         "--code-loc"
+#define OPTION_IDATA_LOC        "--idata-loc"
 #define OPTION_NO_LABEL_OPT     "--nolabelopt"
-#define OPTION_NO_LOOP_INV     "--noinvariant"
-#define OPTION_NO_LOOP_IND     "--noinduction"
-#define OPTION_LESS_PEDANTIC   "--less-pedantic"
-#define OPTION_NO_GCSE         "--nogcse"
-#define OPTION_SHORT_IS_8BITS  "--short-is-8bits"
-#define OPTION_TINI_LIBID      "--tini-libid"
+#define OPTION_NO_LOOP_INV      "--noinvariant"
+#define OPTION_NO_LOOP_IND      "--noinduction"
+#define OPTION_LESS_PEDANTIC    "--less-pedantic"
+#define OPTION_DISABLE_WARNING  "--disable-warning"
+#define OPTION_NO_GCSE          "--nogcse"
+#define OPTION_SHORT_IS_8BITS   "--short-is-8bits"
+#define OPTION_TINI_LIBID       "--tini-libid"
 #define OPTION_NO_XINIT_OPT     "--no-xinit-opt"
-#define OPTION_XRAM_SIZE       "--xram-size"
-#define OPTION_CODE_SIZE       "--code-size"
-#define OPTION_NO_CCODE_IN_ASM "--no-c-code-in-asm"
-#define OPTION_ICODE_IN_ASM    "--i-code-in-asm"
+#define OPTION_XRAM_SIZE        "--xram-size"
+#define OPTION_CODE_SIZE        "--code-size"
+#define OPTION_NO_CCODE_IN_ASM  "--no-c-code-in-asm"
+#define OPTION_ICODE_IN_ASM     "--i-code-in-asm"
 #define OPTION_PRINT_SEARCH_DIRS "--print-search-dirs"
 #define OPTION_MSVC_ERROR_STYLE "--vc"
 #define OPTION_USE_STDOUT       "--use-stdout"
-#define OPTION_STACK_SIZE      "--stack-size"
-#define OPTION_PACK_IRAM       "--pack-iram"
-#define OPTION_NO_PEEP_COMMENTS        "--no-peep-comments"
+#define OPTION_STACK_SIZE       "--stack-size"
+#define OPTION_PACK_IRAM        "--pack-iram"
+#define OPTION_NO_PEEP_COMMENTS "--no-peep-comments"
 
 static const OPTION
 optionsTable[] = {
@@ -207,24 +208,25 @@ optionsTable[] = {
     { 0,    "--nostdinc",           &options.nostdinc, "Do not include the standard include directory in the search path" },
     { 0,    "--verbose",            &options.verbose, "Trace calls to the preprocessor, assembler, and linker" },
     { 0,    OPTION_LESS_PEDANTIC,   NULL, "Disable some of the more pedantic warnings" },
-    { 0,    OPTION_SHORT_IS_8BITS,   NULL, "Make short 8bits (for old times sake)" },
+    { 0,    OPTION_DISABLE_WARNING, NULL, "<nnnn> Disable specific warning" },
+    { 0,    OPTION_SHORT_IS_8BITS,  NULL, "Make short 8bits (for old times sake)" },
     { 0,    "--profile",            &options.profile, "On supported ports, generate extra profiling information" },
     { 0,    "--fommit-frame-pointer", &options.ommitFramePtr, "Leave out the frame pointer." },
     { 0,    "--all-callee-saves",   &options.all_callee_saves, "callee will always save registers used" },
 #if !OPT_DISABLE_DS390
     { 0,    "--use-accelerator",    &options.useAccelerator,"generate code for  DS390 Arithmetic Accelerator"},
 #endif
-    { 0,    "--stack-probe",               &options.stack_probe,"insert call to function __stack_probe at each function prologue"},
+    { 0,    "--stack-probe",        &options.stack_probe,"insert call to function __stack_probe at each function prologue"},
 #if !OPT_DISABLE_TININative
-    { 0,    "--tini-libid",        NULL,"<nnnn> LibraryID used in -mTININative"},
+    { 0,    "--tini-libid",         NULL,"<nnnn> LibraryID used in -mTININative"},
 #endif
 #if !OPT_DISABLE_DS390
     { 0,    "--protect-sp-update",  &options.protect_sp_update,"DS390 - will disable interrupts during ESP:SP updates"},
 #endif
 #if !OPT_DISABLE_DS390 || !OPT_DISABLE_MCS51
-    { 0,    "--parms-in-bank1",            &options.parms_in_bank1,"MCS51/DS390 - use Bank1 for parameter passing"},
-    { 0,    OPTION_STACK_SIZE,     NULL,"MCS51/DS390 - Tells the linker to allocate this space for stack"},
-    { 0,    OPTION_PACK_IRAM,      &options.pack_iram,"MCS51/DS390 - Tells the linker to pack variables in internal ram"},
+    { 0,    "--parms-in-bank1",     &options.parms_in_bank1,"MCS51/DS390 - use Bank1 for parameter passing"},
+    { 0,    OPTION_STACK_SIZE,      NULL,"MCS51/DS390 - Tells the linker to allocate this space for stack"},
+    { 0,    OPTION_PACK_IRAM,       &options.pack_iram,"MCS51/DS390 - Tells the linker to pack variables in internal ram"},
 #endif
     { 0,    OPTION_NO_XINIT_OPT,    &options.noXinitOpt, "don't memcpy initialized xram from code"},
     { 0,    OPTION_NO_CCODE_IN_ASM, &options.noCcodeInAsm, "don't include c-code as comments in the asm file"},
@@ -253,14 +255,14 @@ typedef struct {
     const char *message;
 } UNSUPPORTEDOPT;
 
-static const UNSUPPORTEDOPT 
+static const UNSUPPORTEDOPT
 unsupportedOptTable[] = {
-    { 'X',  NULL,      "use --xstack-loc instead" },
-    { 'x',  NULL,      "use --xstack instead" },
-    { 'i',  NULL,      "use --idata-loc instead" },
-    { 'r',  NULL,      "use --xdata-loc instead" },
-    { 's',  NULL,      "use --code-loc instead" },
-    { 'Y',  NULL,      "use -I instead" }
+    { 'X',  NULL,       "use --xstack-loc instead" },
+    { 'x',  NULL,       "use --xstack instead" },
+    { 'i',  NULL,       "use --idata-loc instead" },
+    { 'r',  NULL,       "use --xdata-loc instead" },
+    { 's',  NULL,       "use --code-loc instead" },
+    { 'Y',  NULL,       "use -I instead" }
 };
 
 /** List of all default constant macros.
@@ -307,7 +309,7 @@ static PORT *_ports[] =
   &xa51_port,
 #endif
 #if !OPT_DISABLE_DS400
-  &ds400_port, 
+  &ds400_port,
 #endif
 #if !OPT_DISABLE_HC08
   &hc08_port,
@@ -327,17 +329,17 @@ _setPort (const char *name)
   for (i = 0; i < NUM_PORTS; i++)
     {
       if (!strcmp (_ports[i]->target, name))
-       {
-         port = _ports[i];
-         return;
-       }
+        {
+          port = _ports[i];
+          return;
+        }
     }
   /* Error - didnt find */
   werror (E_UNKNOWN_TARGET, name);
   exit (1);
 }
 
-/* Override the default processor with the one specified 
+/* Override the default processor with the one specified
  * on the command line */
 static void
 _setProcessor (char *_processor)
@@ -353,13 +355,13 @@ _validatePorts (void)
   for (i = 0; i < NUM_PORTS; i++)
     {
       if (_ports[i]->magic != PORT_MAGIC)
-       {
-         /* Uncomment this line to debug which port is causing the problem
-          * (the target name is close to the beginning of the port struct 
-          * and probably can be accessed just fine). */
-         fprintf(stderr,"%s :",_ports[i]->target);
-         wassertl (0, "Port definition structure is incomplete");
-       }
+        {
+          /* Uncomment this line to debug which port is causing the problem
+           * (the target name is close to the beginning of the port struct
+           * and probably can be accessed just fine). */
+          fprintf(stderr,"%s :",_ports[i]->target);
+          wassertl (0, "Port definition structure is incomplete");
+        }
     }
 }
 
@@ -372,15 +374,15 @@ _findPort (int argc, char **argv)
   while (argc--)
     {
       if (!strncmp (*argv, "-m", 2))
-       {
-         _setPort (*argv + 2);
-         return;
-       }
+        {
+          _setPort (*argv + 2);
+          return;
+        }
       argv++;
     }
 
   /* Use the first in the list */
-       port = _ports[0];
+        port = _ports[0];
 }
 
 /* search through the command line options for the processor */
@@ -390,17 +392,16 @@ _findProcessor (int argc, char **argv)
   while (argc--)
     {
       if (!strncmp (*argv, "-p", 2))
-       {
-         _setProcessor (*argv + 2);
-         return;
-       }
+        {
+          _setProcessor (*argv + 2);
+          return;
+        }
       argv++;
     }
 
   /* no error if processor was not specified. */
 }
 
-
 /*-----------------------------------------------------------------*/
 /* printVersionInfo - prints the version info        */
 /*-----------------------------------------------------------------*/
@@ -410,27 +411,27 @@ printVersionInfo (void)
   int i;
 
   fprintf (stderr,
-          "SDCC : ");
+           "SDCC : ");
   for (i = 0; i < NUM_PORTS; i++)
     fprintf (stderr, "%s%s", i == 0 ? "" : "/", _ports[i]->target);
-  
+
   fprintf (stderr, " " SDCC_VERSION_STR
 #ifdef SDCC_SUB_VERSION_STR
-          "/" SDCC_SUB_VERSION_STR
+           "/" SDCC_SUB_VERSION_STR
 #endif
            " #%s (" __DATE__ ")"
 #ifdef __CYGWIN__
-          " (CYGWIN)\n"
+           " (CYGWIN)\n"
 #elif defined __MINGW32__
-          " (MINGW32)\n"
+           " (MINGW32)\n"
 #elif defined __DJGPP__
-          " (DJGPP)\n"
+           " (DJGPP)\n"
 #elif defined(_MSC_VER)
-          " (MSVC)\n"
+           " (MSVC)\n"
 #elif defined(__BORLANDC__)
-          " (BORLANDC)\n"
+           " (BORLANDC)\n"
 #else
-          " (UNIX) \n"
+           " (UNIX) \n"
 #endif
     , getBuildNumber() );
 }
@@ -439,14 +440,14 @@ static void
 printOptions(const OPTION *optionsTable)
 {
   int i;
-  for (i = 0; optionsTable[i].shortOpt != 0 || optionsTable[i].longOpt != NULL; i++) 
+  for (i = 0; optionsTable[i].shortOpt != 0 || optionsTable[i].longOpt != NULL; i++)
     {
-      fprintf(stdout, "  %c%c  %-20s  %s\n", 
-             optionsTable[i].shortOpt !=0 ? '-' : ' ',
-             optionsTable[i].shortOpt !=0 ? optionsTable[i].shortOpt : ' ',
-             optionsTable[i].longOpt != NULL ? optionsTable[i].longOpt : "",
-             optionsTable[i].help != NULL ? optionsTable[i].help : ""
-             );
+      fprintf(stdout, "  %c%c  %-20s  %s\n",
+              optionsTable[i].shortOpt !=0 ? '-' : ' ',
+              optionsTable[i].shortOpt !=0 ? optionsTable[i].shortOpt : ' ',
+              optionsTable[i].longOpt != NULL ? optionsTable[i].longOpt : "",
+              optionsTable[i].help != NULL ? optionsTable[i].help : ""
+              );
     }
 }
 
@@ -467,11 +468,11 @@ printUsage (void)
 
     for (i = 0; i < NUM_PORTS; i++)
       {
-       if (_ports[i]->poptions != NULL)
-         {
-           fprintf (stdout, "\nSpecial options for the %s port:\n", _ports[i]->target);
-           printOptions (_ports[i]->poptions);
-         }
+        if (_ports[i]->poptions != NULL)
+          {
+            fprintf (stdout, "\nSpecial options for the %s port:\n", _ports[i]->target);
+            printOptions (_ports[i]->poptions);
+          }
       }
 
     exit (0);
@@ -489,7 +490,7 @@ setParseWithComma (set **dest, char *src)
   /* skip the initial white spaces */
   while (isspace(*src))
     src++;
-  
+
   /* skip the trailing white spaces */
   length = strlen(src);
   while (length && isspace(src[length-1]))
@@ -506,10 +507,10 @@ static void
 setDefaultOptions (void)
 {
   /* first the options part */
-  options.stack_loc = 0;       /* stack pointer initialised to 0 */
-  options.xstack_loc = 0;      /* xternal stack starts at 0 */
-  options.code_loc = 0;                /* code starts at 0 */
-  options.data_loc = 0;                /* JCF: By default let the linker locate data */
+  options.stack_loc = 0;        /* stack pointer initialised to 0 */
+  options.xstack_loc = 0;       /* xternal stack starts at 0 */
+  options.code_loc = 0;         /* code starts at 0 */
+  options.data_loc = 0;         /* JCF: By default let the linker locate data */
   options.xdata_loc = 0;
   options.idata_loc = 0x80;
   options.nopeep = 0;
@@ -562,18 +563,18 @@ processFile (char *s)
       /* source file name : not if we already have a
          source file */
       if (fullSrcFileName)
-       {
-         werror (W_TOO_MANY_SRC, s);
-         return;
-       }
+        {
+          werror (W_TOO_MANY_SRC, s);
+          return;
+        }
 
       /* the only source file */
       fullSrcFileName = s;
       if (!(srcFile = fopen (fullSrcFileName, "r")))
-       {
-         werror (E_FILE_OPEN_ERR, s);
-         exit (1);
-       }
+        {
+          werror (E_FILE_OPEN_ERR, s);
+          exit (1);
+        }
 
       /* copy the file name into the buffer */
       strncpyz (buffer, s, sizeof(buffer));
@@ -595,26 +596,26 @@ processFile (char *s)
       /* do this by going backwards till we
          get '\' or ':' or start of buffer */
       while (fext != buffer &&
-            *(fext - 1) != DIR_SEPARATOR_CHAR &&
-            *(fext - 1) != ':')
+             *(fext - 1) != DIR_SEPARATOR_CHAR &&
+             *(fext - 1) != ':')
         {
-       fext--;
+        fext--;
         }
 #else
       /* do this by going backwards till we
          get '/' or start of buffer */
       while (fext != buffer &&
-            *(fext - 1) != DIR_SEPARATOR_CHAR)
+             *(fext - 1) != DIR_SEPARATOR_CHAR)
         {
           fext--;
         }
 #endif
       moduleNameBase = Safe_strdup ( fext );
       moduleName = Safe_strdup ( fext );
-      
+
       for (fext = moduleName; *fext; fext++)
         if (!isalnum (*fext))
-         *fext = '_';
+          *fext = '_';
       return;
     }
 
@@ -680,7 +681,7 @@ getStringArg(const char *szStart, char **argv, int *pi, int argc)
 int
 getIntArg(const char *szStart, char **argv, int *pi, int argc)
 {
-    return (int)floatFromVal(constVal(getStringArg(szStart, argv, pi, argc)));
+  return (int)floatFromVal(constVal(getStringArg(szStart, argv, pi, argc)));
 }
 
 static void
@@ -695,31 +696,31 @@ verifyShortOption(const char *opt)
 static bool
 tryHandleUnsupportedOpt(char **argv, int *pi)
 {
-    if (argv[*pi][0] == '-') 
+    if (argv[*pi][0] == '-')
         {
             const char *longOpt = "";
             char shortOpt = -1;
             int i;
 
-            if (argv[*pi][1] == '-') 
+            if (argv[*pi][1] == '-')
                 {
                     /* Long option. */
                     longOpt = argv[*pi];
                 }
-            else 
+            else
                 {
                     shortOpt = argv[*pi][1];
                 }
-            for (i = 0; i < LENGTH(unsupportedOptTable); i++) 
+            for (i = 0; i < LENGTH(unsupportedOptTable); i++)
                 {
-                    if (unsupportedOptTable[i].shortOpt == shortOpt || 
+                    if (unsupportedOptTable[i].shortOpt == shortOpt ||
                         (longOpt && unsupportedOptTable[i].longOpt && !strcmp(unsupportedOptTable[i].longOpt, longOpt))) {
                         /* Found an unsupported opt. */
                         char buffer[100];
-                        SNPRINTF(buffer, sizeof(buffer), 
-                                "%s%c%c", 
-                                longOpt ? longOpt : "", 
-                                shortOpt ? '-' : ' ', shortOpt ? shortOpt : ' ');
+                        SNPRINTF(buffer, sizeof(buffer),
+                                 "%s%c%c",
+                                 longOpt ? longOpt : "",
+                                 shortOpt ? '-' : ' ', shortOpt ? shortOpt : ' ');
                         werror (W_UNSUPP_OPTION, buffer, unsupportedOptTable[i].message);
                         return 1;
                     }
@@ -727,7 +728,7 @@ tryHandleUnsupportedOpt(char **argv, int *pi)
             /* Didn't find in the table */
             return 0;
         }
-    else 
+    else
         {
             /* Not an option, so can't be unsupported :) */
             return 0;
@@ -741,26 +742,26 @@ scanOptionsTable(const OPTION *optionsTable, char shortOpt, const char *longOpt,
   for (i = 0; optionsTable[i].shortOpt != 0 || optionsTable[i].longOpt != NULL; i++)
     {
       if (optionsTable[i].shortOpt == shortOpt ||
-         (longOpt && optionsTable[i].longOpt && 
-          strcmp(optionsTable[i].longOpt, longOpt) == 0))
-       {
-
-         /* If it is a flag then we can handle it here */
-         if (optionsTable[i].pparameter != NULL) 
-           {
-             if (optionsTable[i].shortOpt == shortOpt)
-               {
-                 verifyShortOption(argv[*pi]);
-               }
-
-             (*optionsTable[i].pparameter)++;
-             return 1;
-           }
-         else {
-           /* Not a flag.  Handled manually later. */
-           return 0;
-         }
-       }
+          (longOpt && optionsTable[i].longOpt &&
+           strcmp(optionsTable[i].longOpt, longOpt) == 0))
+        {
+
+          /* If it is a flag then we can handle it here */
+          if (optionsTable[i].pparameter != NULL)
+            {
+              if (optionsTable[i].shortOpt == shortOpt)
+                {
+                  verifyShortOption(argv[*pi]);
+                }
+
+              (*optionsTable[i].pparameter)++;
+              return 1;
+            }
+          else {
+            /* Not a flag.  Handled manually later. */
+            return 0;
+          }
+        }
     }
   /* Didn't find in the table */
   return 0;
@@ -769,36 +770,36 @@ scanOptionsTable(const OPTION *optionsTable, char shortOpt, const char *longOpt,
 static bool
 tryHandleSimpleOpt(char **argv, int *pi)
 {
-    if (argv[*pi][0] == '-') 
+    if (argv[*pi][0] == '-')
         {
             const char *longOpt = "";
             char shortOpt = -1;
 
-            if (argv[*pi][1] == '-') 
+            if (argv[*pi][1] == '-')
                 {
                     /* Long option. */
                     longOpt = argv[*pi];
                 }
-            else 
+            else
                 {
                     shortOpt = argv[*pi][1];
                 }
 
-           if (scanOptionsTable(optionsTable, shortOpt, longOpt, argv, pi))
-             {
-               return 1;
-             }
-           else if (port && port->poptions &&
-                    scanOptionsTable(port->poptions, shortOpt, longOpt, argv, pi))
-             {
-               return 1;
-             }
-           else
-             {
-               return 0;
-             }
+            if (scanOptionsTable(optionsTable, shortOpt, longOpt, argv, pi))
+              {
+                return 1;
+              }
+            else if (port && port->poptions &&
+                     scanOptionsTable(port->poptions, shortOpt, longOpt, argv, pi))
+              {
+                return 1;
+              }
+            else
+              {
+                return 0;
+              }
         }
-    else 
+    else
         {
             /* Not an option, so can't be handled. */
             return 0;
@@ -817,257 +818,267 @@ parseCmdLine (int argc, char **argv)
   for (i = 1; i < argc; i++)
     {
       if (i >= argc)
-       break;
+        break;
 
-      if (tryHandleUnsupportedOpt(argv, &i) == TRUE) 
-          {
-              continue;
-          }
+      if (tryHandleUnsupportedOpt(argv, &i) == TRUE)
+        {
+          continue;
+        }
 
       if (tryHandleSimpleOpt(argv, &i) == TRUE)
-          {
-              continue;
-          }
+        {
+          continue;
+        }
 
       /* options */
       if (argv[i][0] == '-' && argv[i][1] == '-')
-       {
-         if (strcmp (argv[i], OPTION_HELP) == 0)
-           {
-             printUsage ();
-             exit (0);
-           }
-
-         if (strcmp (argv[i], OPTION_STACK_8BIT) == 0)
-           {
-             options.stack10bit = 0;
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_OUT_FMT_IHX) == 0)
-           {
-             options.out_fmt = 0;
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_LARGE_MODEL) == 0)
-           {
-             _setModel (MODEL_LARGE, argv[i]);
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_MEDIUM_MODEL) == 0)
-           {
-             _setModel (MODEL_MEDIUM, argv[i]);
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_SMALL_MODEL) == 0)
-           {
-             _setModel (MODEL_SMALL, argv[i]);
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_FLAT24_MODEL) == 0)
-           {
-             _setModel (MODEL_FLAT24, argv[i]);
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_DUMP_ALL) == 0)
-           {
-             options.dump_rassgn =
-               options.dump_pack =
-               options.dump_range =
-               options.dump_kill =
-               options.dump_loop =
-               options.dump_gcse =
-               options.dump_raw = 1;
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_PEEP_FILE) == 0)
-           {
-                options.peep_file = getStringArg(OPTION_PEEP_FILE, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_LIB_PATH) == 0)
+        {
+          if (strcmp (argv[i], OPTION_HELP) == 0)
+            {
+              printUsage ();
+              exit (0);
+            }
+
+          if (strcmp (argv[i], OPTION_STACK_8BIT) == 0)
+            {
+              options.stack10bit = 0;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_OUT_FMT_IHX) == 0)
+            {
+              options.out_fmt = 0;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_LARGE_MODEL) == 0)
+            {
+              _setModel (MODEL_LARGE, argv[i]);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_MEDIUM_MODEL) == 0)
             {
-                addSet(&libPathsSet, Safe_strdup(getStringArg(OPTION_LIB_PATH, argv, &i, argc)));
-                continue;
-           }
+              _setModel (MODEL_MEDIUM, argv[i]);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_SMALL_MODEL) == 0)
+            {
+              _setModel (MODEL_SMALL, argv[i]);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_FLAT24_MODEL) == 0)
+            {
+              _setModel (MODEL_FLAT24, argv[i]);
+              continue;
+            }
 
-         if (strcmp (argv[i], OPTION_VERSION) == 0)
-           {
-             printVersionInfo ();
+          if (strcmp (argv[i], OPTION_DUMP_ALL) == 0)
+            {
+              options.dump_rassgn =
+                options.dump_pack =
+                options.dump_range =
+                options.dump_kill =
+                options.dump_loop =
+                options.dump_gcse =
+                options.dump_raw = 1;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_PEEP_FILE) == 0)
+            {
+              options.peep_file = getStringArg(OPTION_PEEP_FILE, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_LIB_PATH) == 0)
+            {
+              addSet(&libPathsSet, Safe_strdup(getStringArg(OPTION_LIB_PATH, argv, &i, argc)));
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_VERSION) == 0)
+            {
+              printVersionInfo ();
               exit (0);
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_CALLEE_SAVES) == 0)
-           {
-                setParseWithComma(&options.calleeSavesSet, getStringArg(OPTION_CALLEE_SAVES, argv, &i, argc));
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_XSTACK_LOC) == 0)
-           {
-                options.xstack_loc = getIntArg(OPTION_XSTACK_LOC, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_STACK_LOC) == 0)
-           {
-                options.stack_loc = getIntArg(OPTION_STACK_LOC, argv, &i, argc);
-                continue;
-           }
-         
-      if (strcmp (argv[i], OPTION_STACK_SIZE) == 0)
-           {
-                options.stack_size = getIntArg(OPTION_STACK_SIZE, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_XRAM_LOC) == 0)
-           {
-                options.xdata_loc = getIntArg(OPTION_XRAM_LOC, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_IRAM_SIZE) == 0)
-           {
-                options.iram_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_XRAM_SIZE) == 0)
-           {
-                options.xram_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
-                options.xram_size_set = TRUE;
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_CODE_SIZE) == 0)
-           {
-                options.code_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_DATA_LOC) == 0)
-           {
-                options.data_loc = getIntArg(OPTION_DATA_LOC, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_IDATA_LOC) == 0)
-           {
-                options.idata_loc = getIntArg(OPTION_IDATA_LOC, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_CODE_LOC) == 0)
-           {
-                options.code_loc = getIntArg(OPTION_CODE_LOC, argv, &i, argc);
-                continue;
-           }
-
-         if (strcmp (argv[i], OPTION_NO_GCSE) == 0)
-           {
-             optimize.global_cse = 0;
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_NO_LOOP_INV) == 0)
-           {
-             optimize.loopInvariant = 0;
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_NO_LABEL_OPT) == 0)
-           {
-             optimize.label4 = 0;
-             continue;
-           }
-
-         if (strcmp (argv[i], OPTION_NO_LOOP_IND) == 0)
-           {
-             optimize.loopInduction = 0;
-             continue;
-           }
-
-          if (strcmp (argv[i], OPTION_LESS_PEDANTIC) == 0) 
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_CALLEE_SAVES) == 0)
+            {
+              setParseWithComma(&options.calleeSavesSet, getStringArg(OPTION_CALLEE_SAVES, argv, &i, argc));
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_XSTACK_LOC) == 0)
             {
-             options.lessPedantic = 1;
+              options.xstack_loc = getIntArg(OPTION_XSTACK_LOC, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_STACK_LOC) == 0)
+            {
+              options.stack_loc = getIntArg(OPTION_STACK_LOC, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_STACK_SIZE) == 0)
+            {
+              options.stack_size = getIntArg(OPTION_STACK_SIZE, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_XRAM_LOC) == 0)
+            {
+              options.xdata_loc = getIntArg(OPTION_XRAM_LOC, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_IRAM_SIZE) == 0)
+            {
+              options.iram_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_XRAM_SIZE) == 0)
+            {
+              options.xram_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
+              options.xram_size_set = TRUE;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_CODE_SIZE) == 0)
+            {
+              options.code_size = getIntArg(OPTION_IRAM_SIZE, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_DATA_LOC) == 0)
+            {
+              options.data_loc = getIntArg(OPTION_DATA_LOC, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_IDATA_LOC) == 0)
+            {
+              options.idata_loc = getIntArg(OPTION_IDATA_LOC, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_CODE_LOC) == 0)
+            {
+              options.code_loc = getIntArg(OPTION_CODE_LOC, argv, &i, argc);
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_NO_GCSE) == 0)
+            {
+              optimize.global_cse = 0;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_NO_LOOP_INV) == 0)
+            {
+              optimize.loopInvariant = 0;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_NO_LABEL_OPT) == 0)
+            {
+              optimize.label4 = 0;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_NO_LOOP_IND) == 0)
+            {
+              optimize.loopInduction = 0;
+              continue;
+            }
+
+          if (strcmp (argv[i], OPTION_LESS_PEDANTIC) == 0)
+            {
+              options.lessPedantic = 1;
               setErrorLogLevel(ERROR_LEVEL_WARNING);
               continue;
             }
 
-         if (strcmp (&argv[i][1], OPTION_SHORT_IS_8BITS) == 0) 
+          if (strcmp (argv[i], OPTION_DISABLE_WARNING) == 0)
+            {
+              int w = getIntArg(OPTION_DISABLE_WARNING, argv, &i, argc);
+              if (w < MAX_ERROR_WARNING)
+                {
+                  setWarningDisabled(w);
+                }
+              continue;
+            }
+
+          if (strcmp (&argv[i][1], OPTION_SHORT_IS_8BITS) == 0)
             {
               options.shortis8bits=1;
               continue;
             }
 
-         if (strcmp (argv[i], OPTION_TINI_LIBID) == 0)
-           {
-                options.tini_libid = getIntArg(OPTION_TINI_LIBID, argv, &i, argc);
-                continue;
-           }
-          
-         if (!port->parseOption (&argc, argv, &i))
-           {
-             werror (W_UNKNOWN_OPTION, argv[i]);
-             continue;
-           }
-         else
-           {
-             continue;
-           }
-       }
+          if (strcmp (argv[i], OPTION_TINI_LIBID) == 0)
+            {
+              options.tini_libid = getIntArg(OPTION_TINI_LIBID, argv, &i, argc);
+              continue;
+            }
+
+          if (!port->parseOption (&argc, argv, &i))
+            {
+              werror (W_UNKNOWN_OPTION, argv[i]);
+              continue;
+            }
+          else
+            {
+              continue;
+            }
+        }
 
       /* if preceded by  '-' then option */
       if (*argv[i] == '-')
-       {
-         switch (argv[i][1])
-           {
-           case 'h':
+        {
+          switch (argv[i][1])
+            {
+            case 'h':
               verifyShortOption(argv[i]);
 
-             printUsage ();
-             exit (0);
-             break;
+              printUsage ();
+              exit (0);
+              break;
 
-           case 'm':
-             /* Used to select the port. But this has already been done. */
-             break;
+            case 'm':
+              /* Used to select the port. But this has already been done. */
+              break;
 
-           case 'p':
-             /* Used to select the processor in port. But this has
-              * already been done. */
-             break;
+            case 'p':
+              /* Used to select the processor in port. But this has
+               * already been done. */
+              break;
 
-           case 'c':
+            case 'c':
               verifyShortOption(argv[i]);
 
-             options.cc_only = 1;
-             break;
+              options.cc_only = 1;
+              break;
 
-           case 'L':
+            case 'L':
                 addSet(&libPathsSet, Safe_strdup(getStringArg("-L", argv, &i, argc)));
                 break;
 
             case 'l':
                 addSet(&libFilesSet, Safe_strdup(getStringArg("-l", argv, &i, argc)));
                 break;
-            
+
             case 'o':
               {
                 char *p;
 
                 /* copy the file name into the buffer */
-                strncpyz(buffer, getStringArg("-o", argv, &i, argc), 
-                        sizeof(buffer));
+                strncpyz(buffer, getStringArg("-o", argv, &i, argc),
+                         sizeof(buffer));
                 /* point to last character */
                 p = buffer + strlen (buffer) - 1;
                 if (*p == DIR_SEPARATOR_CHAR)
@@ -1102,19 +1113,19 @@ parseCmdLine (int argc, char **argv)
                 break;
               }
 
-           case 'W':
+            case 'W':
               /* pre-processer options */
               if (argv[i][2] == 'p')
                 {
                   setParseWithComma(&preArgvSet, getStringArg("-Wp", argv, &i, argc));
                 }
-             /* linker options */
-             else if (argv[i][2] == 'l')
-               {
+              /* linker options */
+              else if (argv[i][2] == 'l')
+                {
                   setParseWithComma(&linkOptionsSet, getStringArg("-Wl", argv, &i, argc));
-               }
+                }
               /* assembler options */
-             else if (argv[i][2] == 'a')
+              else if (argv[i][2] == 'a')
                 {
                   setParseWithComma(&asmOptionsSet, getStringArg("-Wa", argv, &i, argc));
                 }
@@ -1122,86 +1133,86 @@ parseCmdLine (int argc, char **argv)
                 {
                   werror (W_UNKNOWN_OPTION, argv[i]);
                 }
-             break;
+              break;
 
-           case 'v':
+            case 'v':
               verifyShortOption(argv[i]);
 
-             printVersionInfo ();
-             exit (0);
-             break;
+              printVersionInfo ();
+              exit (0);
+              break;
 
-             /* preprocessor options */
-           case 'M':
-             {
-               preProcOnly = 1;
+              /* preprocessor options */
+            case 'M':
+              {
+                preProcOnly = 1;
                 if (argv[i][2] == 'M')
-                 addSet(&preArgvSet, Safe_strdup("-MM"));
+                  addSet(&preArgvSet, Safe_strdup("-MM"));
                 else
-                 addSet(&preArgvSet, Safe_strdup("-M"));
-               break;
-             }
-           case 'C':
-             {
-               addSet(&preArgvSet, Safe_strdup("-C"));
-               break;
-             }
-
-           case 'd':
-           case 'D':
-           case 'I':
-           case 'A':
-           case 'U':
-             {
-               char sOpt = argv[i][1];
-               char *rest;
-
-               if (argv[i][2] == ' ' || argv[i][2] == '\0')
-                 {
-                   i++;
+                  addSet(&preArgvSet, Safe_strdup("-M"));
+                break;
+              }
+            case 'C':
+              {
+                addSet(&preArgvSet, Safe_strdup("-C"));
+                break;
+              }
+
+            case 'd':
+            case 'D':
+            case 'I':
+            case 'A':
+            case 'U':
+              {
+                char sOpt = argv[i][1];
+                char *rest;
+
+                if (argv[i][2] == ' ' || argv[i][2] == '\0')
+                  {
+                    i++;
                     if (i >= argc)
                       {
-                          /* No argument. */
-                          werror(E_ARGUMENT_MISSING, argv[i-1]);
-                          break;
+                        /* No argument. */
+                        werror(E_ARGUMENT_MISSING, argv[i-1]);
+                        break;
                       }
                     else
                       {
-                          rest = argv[i];
+                        rest = argv[i];
                       }
-                 }
-               else
-                 rest = &argv[i][2];
+                  }
+                else
+                  rest = &argv[i][2];
 
-               if (sOpt == 'Y')
-                 sOpt = 'I';
+                if (sOpt == 'Y')
+                  sOpt = 'I';
 
                 SNPRINTF (buffer, sizeof(buffer),
                   ((sOpt == 'I') ? "-%c\"%s\"": "-%c%s"), sOpt, rest);
-               addSet(&preArgvSet, Safe_strdup(buffer));
-               if(sOpt == 'I')addSet(&includeDirsSet, Safe_strdup(rest));
-             }
-             break;
-
-           default:
-             if (!port->parseOption (&argc, argv, &i))
-               werror (W_UNKNOWN_OPTION, argv[i]);
-           }
-         continue;
-       }
+                addSet(&preArgvSet, Safe_strdup(buffer));
+                if(sOpt == 'I')addSet(&includeDirsSet, Safe_strdup(rest));
+              }
+              break;
+
+            default:
+              if (!port->parseOption (&argc, argv, &i))
+                werror (W_UNKNOWN_OPTION, argv[i]);
+            }
+          continue;
+        }
 
       if (!port->parseOption (&argc, argv, &i))
-       {
-          /* no option must be a filename */
-          if (options.c1mode)
-            {
-               werror (W_NO_FILE_ARG_IN_C1, argv[i]);
-            }
-        else
-            {
-               processFile (argv[i]);
-            }
-       }
+        {
+          /* no option must be a filename */
+          if (options.c1mode)
+            {
+              werror (W_NO_FILE_ARG_IN_C1, argv[i]);
+            }
+          else
+            {
+              processFile (argv[i]);
+            }
+        }
     }
 
   /* some sanity checks in c1 mode */
@@ -1210,32 +1221,32 @@ parseCmdLine (int argc, char **argv)
       const char *s;
 
       if (fullSrcFileName)
-       {
-         fclose (srcFile);
-         werror (W_NO_FILE_ARG_IN_C1, fullSrcFileName);
-       }
+        {
+          fclose (srcFile);
+          werror (W_NO_FILE_ARG_IN_C1, fullSrcFileName);
+        }
       fullSrcFileName = NULL;
       for (s = setFirstItem(relFilesSet); s != NULL; s = setNextItem(relFilesSet))
-       {
-         werror (W_NO_FILE_ARG_IN_C1, s);
-       }
+        {
+          werror (W_NO_FILE_ARG_IN_C1, s);
+        }
       for (s = setFirstItem(libFilesSet); s != NULL; s = setNextItem(libFilesSet))
-       {
-         werror (W_NO_FILE_ARG_IN_C1, s);
-       }
+        {
+          werror (W_NO_FILE_ARG_IN_C1, s);
+        }
       deleteSet(&relFilesSet);
       deleteSet(&libFilesSet);
 
-        if (options.cc_only || noAssemble || preProcOnly)
-       {
-         werror (W_ILLEGAL_OPT_COMBINATION);
-       }
+      if (options.cc_only || noAssemble || preProcOnly)
+        {
+          werror (W_ILLEGAL_OPT_COMBINATION);
+        }
       options.cc_only = noAssemble = preProcOnly = 0;
       if (!dstFileName)
-       {
-         werror (E_NEED_OPT_O_IN_C1);
-         exit (1);
-       }
+        {
+          werror (E_NEED_OPT_O_IN_C1);
+          exit (1);
+        }
     }
   /* if no dstFileName given with -o, we've to find one: */
   if (!dstFileName)
@@ -1245,9 +1256,9 @@ parseCmdLine (int argc, char **argv)
       /* use the modulename from the C-source */
       if (fullSrcFileName)
         {
-         size_t bufSize = strlen (dstPath) + strlen (moduleNameBase) + 1;
+          size_t bufSize = strlen (dstPath) + strlen (moduleNameBase) + 1;
 
-         dstFileName = Safe_alloc (bufSize);
+          dstFileName = Safe_alloc (bufSize);
           strncpyz (dstFileName, dstPath, bufSize);
           strncatz (dstFileName, moduleNameBase, bufSize);
         }
@@ -1255,7 +1266,7 @@ parseCmdLine (int argc, char **argv)
       else if ((s = peekSet(relFilesSet)) != NULL)
         {
           char *objectName;
-         size_t bufSize;
+          size_t bufSize;
 
           strncpyz (buffer, s, sizeof(buffer));
           /* remove extension (it must be .rel) */
@@ -1270,7 +1281,7 @@ parseCmdLine (int argc, char **argv)
             {
               objectName = buffer;
             }
-         bufSize = strlen (dstPath) + strlen (objectName) + 1;  
+          bufSize = strlen (dstPath) + strlen (objectName) + 1;
           dstFileName = Safe_alloc (bufSize);
           strncpyz (dstFileName, dstPath, bufSize);
           strncatz (dstFileName, objectName, bufSize);
@@ -1286,11 +1297,11 @@ parseCmdLine (int argc, char **argv)
   if (options.debug && fullSrcFileName)
     {
       SNPRINTF (scratchFileName, sizeof(scratchFileName),
-               "%s.adb", dstFileName); /*JCF: Nov 30, 2002*/
+                "%s.adb", dstFileName); /*JCF: Nov 30, 2002*/
       if(debugFile->openFile(scratchFileName))
-       debugFile->writeModule(moduleName);
+        debugFile->writeModule(moduleName);
       else
-       werror (E_FILE_OPEN_ERR, scratchFileName);
+        werror (E_FILE_OPEN_ERR, scratchFileName);
     }
   MSVC_style(options.vc_err_style);
   if(options.use_stdout) dup2(STDOUT_FILENO, STDERR_FILENO);
@@ -1313,22 +1324,22 @@ linkEdit (char **envp)
   if(port->linker.needLinkerScript)
     {
       char out_fmt;
-      
+
       switch (options.out_fmt)
         {
-       case 0:
-         out_fmt = 'i';        /* Intel hex */
-         break;
-       case 1:
-         out_fmt = 's';        /* Motorola S19 */
-         break;
-       case 2:
-         out_fmt = 't';        /* Elf */
-         break;
-       default:
-         out_fmt = 'i';
-       }
-      
+        case 0:
+          out_fmt = 'i';        /* Intel hex */
+          break;
+        case 1:
+          out_fmt = 's';        /* Motorola S19 */
+          break;
+        case 2:
+          out_fmt = 't';        /* Elf */
+          break;
+        default:
+          out_fmt = 'i';
+        }
+
       /* first we need to create the <filename>.lnk file */
       SNPRINTF (scratchFileName, sizeof(scratchFileName),
         "%s.lnk", dstFileName);
@@ -1414,7 +1425,7 @@ linkEdit (char **envp)
           WRITE_SEG_LOC ("_CODE", options.code_loc);
           WRITE_SEG_LOC ("_DATA", options.data_loc);
         }
-  
+
       /* If the port has any special linker area declarations, get 'em */
       if (port->extraAreas.genExtraAreaLinkOptions)
         {
@@ -1453,7 +1464,7 @@ linkEdit (char **envp)
                     }
                   else
                     {
-                      fprintf(stderr, 
+                      fprintf(stderr,
                         "Add support for your FLAT24 target in %s @ line %d\n",
                         __FILE__, __LINE__);
                       exit(-1);
@@ -1501,7 +1512,7 @@ linkEdit (char **envp)
                 }
               else
                 {
-                  fprintf(stderr, 
+                  fprintf(stderr,
                     "Add support for your FLAT24 target in %s @ line %d\n",
                     __FILE__, __LINE__);
                   exit(-1);
@@ -1509,7 +1520,7 @@ linkEdit (char **envp)
               }
 #endif
 
-#if !OPT_DISABLE_XA51 
+#if !OPT_DISABLE_XA51
 #ifdef STD_XA51_LIB
           if (options.model == MODEL_PAGE0)
             {
@@ -1518,10 +1529,10 @@ linkEdit (char **envp)
 #endif
 #endif
           if (TARGET_IS_MCS51)
-           {
+            {
               fprintf (lnkfile, "-l mcs51\n");
-           }
-         if (!(TARGET_IS_Z80 || TARGET_IS_GBZ80
+            }
+          if (!(TARGET_IS_Z80 || TARGET_IS_GBZ80
             || TARGET_IS_HC08)) /*Not for the z80, gbz80*/
             { /*Why the z80 port is not using the standard libraries?*/
               fprintf (lnkfile, "-l %s\n", STD_LIB);
@@ -1614,7 +1625,7 @@ linkEdit (char **envp)
           /* strip ".rel" extension */
           *strrchr (scratchFileName, '.') = '\0';
         }
-      strncatz (scratchFileName, 
+      strncatz (scratchFileName,
         options.out_fmt ? ".S19" : ".ihx",
         sizeof(scratchFileName));
     }
@@ -1627,11 +1638,11 @@ linkEdit (char **envp)
 
       strcpy(buffer3, dstFileName);
       if(TARGET_IS_PIC16) {
-        
+
          /* use $l to set the linker include directories */
          tempSet = appendStrSet(libDirsSet, "-I\"", "\"");
          mergeSets(&linkOptionsSet, tempSet);
-         
+
          tempSet = appendStrSet(libPathsSet, "-I\"", "\"");
          mergeSets(&linkOptionsSet, tempSet);
 
@@ -1642,15 +1653,15 @@ linkEdit (char **envp)
          mergeSets(&libSet, tempSet);
 //         libSet = reverseSet(libSet);
 
-       if(fullSrcFileName) {
-//             strcpy(buffer3, strrchr(fullSrcFileName, DIR_SEPARATOR_CHAR)+1);
-               /* if it didn't work, revert to old behaviour */
-               if(!strlen(buffer3))strcpy(buffer3, dstFileName);
-               strcat(buffer3, port->linker.rel_ext);
-               
-       } else strcpy(buffer3, "");
+        if(fullSrcFileName) {
+//              strcpy(buffer3, strrchr(fullSrcFileName, DIR_SEPARATOR_CHAR)+1);
+                /* if it didn't work, revert to old behaviour */
+                if(!strlen(buffer3))strcpy(buffer3, dstFileName);
+                strcat(buffer3, port->linker.rel_ext);
+
+        } else strcpy(buffer3, "");
       }
-      
+
       buildCmdLine (buffer2, port->linker.cmd, buffer3, scratchFileName, (libSet?joinStrSet(libSet):NULL), linkOptionsSet);
 
       buildCmdLine2 (buffer, sizeof(buffer), buffer2);
@@ -1754,34 +1765,34 @@ assemble (char **envp)
     } else {
         /* the assembled file gets the name of the first modul */
         strncpyz (scratchFileName, dstFileName, sizeof(scratchFileName));
-        strncatz (scratchFileName, port->linker.rel_ext, 
-                 sizeof(scratchFileName));
+        strncatz (scratchFileName, port->linker.rel_ext,
+                  sizeof(scratchFileName));
     }
 
     if (port->assembler.do_assemble) {
-       port->assembler.do_assemble(asmOptionsSet);
-       return ;
+        port->assembler.do_assemble(asmOptionsSet);
+        return ;
     } else if (port->assembler.cmd) {
         buildCmdLine (buffer, port->assembler.cmd, dstFileName, scratchFileName,
-                     options.debug ? port->assembler.debug_opts : port->assembler.plain_opts,
-                     asmOptionsSet);
+                      options.debug ? port->assembler.debug_opts : port->assembler.plain_opts,
+                      asmOptionsSet);
     } else {
-       buildCmdLine2 (buffer, sizeof(buffer), port->assembler.mcmd);
+        buildCmdLine2 (buffer, sizeof(buffer), port->assembler.mcmd);
     }
 
     if (my_system (buffer)) {
-       /* either system() or the assembler itself has reported an error
-          perror ("Cannot exec assembler");
-       */
-       exit (1);
+        /* either system() or the assembler itself has reported an error
+           perror ("Cannot exec assembler");
+        */
+        exit (1);
     }
     /* TODO: most assembler don't have a -o parameter */
     /* -o option overrides default name? */
     if (options.cc_only && fullDstFileName) {
         strncpyz (scratchFileName, dstFileName, sizeof(scratchFileName));
-        strncatz (scratchFileName, 
-                 port->linker.rel_ext,
-                 sizeof(scratchFileName));
+        strncatz (scratchFileName,
+                  port->linker.rel_ext,
+                  sizeof(scratchFileName));
         if (strcmp (scratchFileName, fullDstFileName))
           unlink (fullDstFileName);
         rename (scratchFileName, fullDstFileName);
@@ -1805,15 +1816,15 @@ preProcess (char **envp)
 
       /* if using external stack define the macro */
       if (options.useXstack)
-       addSet(&preArgvSet, Safe_strdup("-DSDCC_USE_XSTACK"));
+        addSet(&preArgvSet, Safe_strdup("-DSDCC_USE_XSTACK"));
 
       /* set the macro for stack autos  */
       if (options.stackAuto)
-       addSet(&preArgvSet, Safe_strdup("-DSDCC_STACK_AUTO"));
+        addSet(&preArgvSet, Safe_strdup("-DSDCC_STACK_AUTO"));
 
       /* set the macro for stack autos  */
       if (options.stack10bit)
-       addSet(&preArgvSet, Safe_strdup("-DSDCC_STACK_TENBIT"));
+        addSet(&preArgvSet, Safe_strdup("-DSDCC_STACK_TENBIT"));
 
       /* set the macro for no overlay  */
       if (options.noOverlay)
@@ -1821,29 +1832,29 @@ preProcess (char **envp)
 
       /* set the macro for large model  */
       switch (options.model)
-       {
-       case MODEL_LARGE:
-         addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_LARGE"));
-         break;
-       case MODEL_SMALL:
-         addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_SMALL"));
-         break;
-       case MODEL_COMPACT:
-         addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_COMPACT"));
-         break;
-       case MODEL_MEDIUM:
-         addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_MEDIUM"));
-         break;
-       case MODEL_FLAT24:
-         addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_FLAT24"));
-         break;
-       case MODEL_PAGE0:
-         addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_PAGE0"));
-         break;
-       default:
-         werror (W_UNKNOWN_MODEL, __FILE__, __LINE__);
-         break;
-       }
+        {
+        case MODEL_LARGE:
+          addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_LARGE"));
+          break;
+        case MODEL_SMALL:
+          addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_SMALL"));
+          break;
+        case MODEL_COMPACT:
+          addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_COMPACT"));
+          break;
+        case MODEL_MEDIUM:
+          addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_MEDIUM"));
+          break;
+        case MODEL_FLAT24:
+          addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_FLAT24"));
+          break;
+        case MODEL_PAGE0:
+          addSet(&preArgvSet, Safe_strdup("-DSDCC_MODEL_PAGE0"));
+          break;
+        default:
+          werror (W_UNKNOWN_MODEL, __FILE__, __LINE__);
+          break;
+        }
 
       /* add port (processor information to processor */
       addSet(&preArgvSet, Safe_strdup("-DSDCC_{port}"));
@@ -1861,25 +1872,25 @@ preProcess (char **envp)
         deleteSet(&inclList);
 
       if (preProcOnly && fullDstFileName)
-       {
-         /* -E and -o given */
-         setMainValue ("cppoutfilename", fullDstFileName);
-       }
+        {
+          /* -E and -o given */
+          setMainValue ("cppoutfilename", fullDstFileName);
+        }
       else
-       {
-         /* Piping: set cppoutfilename to NULL, to avoid empty quotes */
-         setMainValue ("cppoutfilename", NULL);
-       }
+        {
+          /* Piping: set cppoutfilename to NULL, to avoid empty quotes */
+          setMainValue ("cppoutfilename", NULL);
+        }
 
       if (options.verbose)
-       printf ("sdcc: Calling preprocessor...\n");
+        printf ("sdcc: Calling preprocessor...\n");
 
       buildCmdLine2 (buffer, sizeof(buffer), _preCmd);
 
       if (preProcOnly) {
         if (my_system (buffer)) {
-         exit (1);
-       }
+          exit (1);
+        }
 
         exit (0);
       }
@@ -2148,7 +2159,7 @@ main (int argc, char **argv, char **envp)
 #ifdef JAMIN_DS390
   if (strcmp(port->target, "mcs51") == 0) {
     printf("DS390 jammed in A\n");
-         _setPort ("ds390");
+          _setPort ("ds390");
     ds390_jammed = 1;
   }
 #endif
@@ -2173,10 +2184,10 @@ main (int argc, char **argv, char **envp)
   setDataPaths(argv[0]);
 
   if(port->initPaths)
-       port->initPaths();
-  
+        port->initPaths();
+
   if(options.printSearchDirs)
-       doPrintSearchDirs();
+        doPrintSearchDirs();
 
   /* if no input then printUsage & exit */
   if (!options.c1mode && !fullSrcFileName && peekSet(relFilesSet) == NULL) {
@@ -2204,7 +2215,7 @@ main (int argc, char **argv, char **envp)
       initPeepHole ();
 
       if (options.verbose)
-       printf ("sdcc: Generating code...\n");
+        printf ("sdcc: Generating code...\n");
 
       yyparse ();
 
@@ -2249,9 +2260,9 @@ main (int argc, char **argv, char **envp)
       (fullSrcFileName || peekSet(relFilesSet) != NULL))
     {
       if (port->linker.do_link)
-       port->linker.do_link ();
+        port->linker.do_link ();
       else
-       linkEdit (envp);
+        linkEdit (envp);
     }
 
   return 0;