* support/regression/tests/bug-478094.c: Added.
[fw/sdcc] / src / SDCC.lex
index 425508adf254f00083980e12c0973535eb8ab641..02876dd012436c56680afbb6f16f86cdbc2f6cfd 100644 (file)
@@ -84,14 +84,14 @@ struct options  save_options  ;
 %%
 "_asm"         {  
   count(); 
-  asmp = asmbuff = Safe_realloc (asmbuff, INITIAL_INLINEASM);
+  asmp = asmbuff = realloc (asmbuff, INITIAL_INLINEASM);
   asmbuffSize=INITIAL_INLINEASM;
   BEGIN(asm) ;
 }
 <asm>"_endasm" { 
   count();
   *asmp = '\0';
-  yylval.yyinline = Safe_calloc (1, strlen(asmbuff)+1);
+  yylval.yyinline = malloc (strlen(asmbuff)+1);
   strcpy(yylval.yyinline,asmbuff);
   BEGIN(INITIAL);
   return (INLINEASM);
@@ -101,7 +101,7 @@ struct options  save_options  ;
     // increase the buffersize with 50%
     int size=asmp-asmbuff;
     asmbuffSize=asmbuffSize*3/2;
-    asmbuff = Safe_realloc (asmbuff, asmbuffSize); 
+    asmbuff = realloc (asmbuff, asmbuffSize); 
     asmp=asmbuff+size;
   }
   *asmp++ = yytext[0];
@@ -112,7 +112,7 @@ struct options  save_options  ;
     // increase the buffersize with 50%
     int size=asmp-asmbuff;
     asmbuffSize=asmbuffSize*3/2;
-    asmbuff = Safe_realloc (asmbuff, asmbuffSize); 
+    asmbuff = realloc (asmbuff, asmbuffSize); 
     asmp=asmbuff+size;
   }
   *asmp++ = '\n' ;
@@ -170,22 +170,12 @@ struct options  save_options  ;
 "_naked"       { count(); TKEYWORD(NAKED); }
 "while"        { count(); return(WHILE); }
 "xdata"        { count(); TKEYWORD(XDATA); }
-"_data"               { count(); TKEYWORD(_NEAR); }
-"_code"               { count(); TKEYWORD(_CODE); }
-"_eeprom"      { count(); TKEYWORD(_EEPROM); }
-"_flash"       { count(); TKEYWORD(_CODE); }
-"_generic"     { count(); TKEYWORD(_GENERIC); }
-"_near"               { count(); TKEYWORD(_NEAR); }
-"_sram"        { count(); TKEYWORD(_XDATA);}
-"_xdata"       { count(); TKEYWORD(_XDATA);}
-"_pdata"       { count(); TKEYWORD(_PDATA); }
-"_idata"       { count(); TKEYWORD(_IDATA); }
 "..."         { count(); return(VAR_ARGS);}
 {L}({L}|{D})*  { count(); return(check_type()); }
 0[xX]{H}+{IS}? { count(); yylval.val = constVal(yytext); return(CONSTANT); }
 0{D}+{IS}?     { count(); yylval.val = constVal(yytext); return(CONSTANT); }
 {D}+{IS}?      { count(); yylval.val = constVal(yytext); return(CONSTANT); }
-'(\\.|[^\\'])+' { count();yylval.val = charVal (yytext); return(CONSTANT); }
+'(\\.|[^\\'])+' { count();yylval.val = charVal (yytext); return(CONSTANT); /* ' make syntax highliter happy */}
 {D}+{E}{FS}?   { count(); yylval.val = constFloatVal(yytext);return(CONSTANT); }
 {D}*"."{D}+({E})?{FS}?  { count(); yylval.val = constFloatVal(yytext);return(CONSTANT); }
 {D}+"."{D}*({E})?{FS}? { count(); yylval.val = constFloatVal(yytext);return(CONSTANT); }
@@ -253,7 +243,7 @@ struct options  save_options  ;
 }
 .                         { count()    ; }
 %%
-   
+
 int checkCurrFile ( char *s)
 {
     char lineNum[10]                   ;
@@ -298,7 +288,7 @@ int checkCurrFile ( char *s)
        /* mark the end of the filename */
        while (*s != '"') s++;
        *s = '\0';
-       currFname = Safe_calloc(1,strlen(sb)+1);
+       currFname = malloc (strlen(sb)+1);
        strcpy(currFname,sb);
        lineno = yylineno = lNum;
     }
@@ -457,11 +447,11 @@ void doPragma (int op, char *cp)
            /* append to the functions already listed
               in callee-saves */
            for (; options.calleeSaves[i] ;i++);
-           parseWithComma(&options.calleeSaves[i],strdup(cp));
+           parseWithComma(&options.calleeSaves[i], Safe_strdup(cp));
        }
        break;
     case P_EXCLUDE:
-       parseWithComma(options.excludeRegs,strdup(cp));
+       parseWithComma(options.excludeRegs, Safe_strdup(cp));
        break;
     case P_LOOPREV:
        optimize.noLoopReverse = 1;
@@ -547,7 +537,7 @@ int process_pragma(char *s)
     }
 
     if (strncmp(cp,PRAGMA_NOLOOPREV,strlen(PRAGMA_NOLOOPREV)) == 0) {
-       doPragma(P_EXCLUDE,NULL);
+       doPragma(P_LOOPREV,NULL);
        return 0;
     }