From: borutr Date: Wed, 27 Dec 2006 16:45:12 +0000 (+0000) Subject: * src/pic16/main.c: fixed #pragma udata handling X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=b7850ad97a05bb3170ab58ae065086c32f8e9a0d;p=fw%2Fsdcc * src/pic16/main.c: fixed #pragma udata handling * src/mcs51/mcs51.dsp: added peep.[ch] to the project git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4532 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index ea4d5c7a..f8f4477e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,8 @@ * support/cpp2/libiberty/getpwd.c, support/cpp2/sdcpp.h: fixed for borland C * support/cpp2/libiberty/Makefile.bcc: updated + * src/pic16/main.c: fixed #pragma udata handling + * src/mcs51/mcs51.dsp: added peep.[ch] to the project 2006-12-26 Bernhard Held diff --git a/src/mcs51/mcs51.dsp b/src/mcs51/mcs51.dsp index f86bfb61..f19afb13 100644 --- a/src/mcs51/mcs51.dsp +++ b/src/mcs51/mcs51.dsp @@ -93,6 +93,10 @@ SOURCE=.\main.c # End Source File # Begin Source File +SOURCE=.\peep.c +# End Source File +# Begin Source File + SOURCE=.\ralloc.c # End Source File # End Group @@ -109,6 +113,10 @@ SOURCE=.\main.h # End Source File # Begin Source File +SOURCE=.\peep.h +# End Source File +# Begin Source File + SOURCE=.\ralloc.h # End Source File # Begin Source File diff --git a/src/pic16/main.c b/src/pic16/main.c index ba45634f..a5a81b6f 100644 --- a/src/pic16/main.c +++ b/src/pic16/main.c @@ -335,68 +335,79 @@ do_pragma(int id, const char *name, const char *cp) int found = 0; cp = get_pragma_token(cp, &token); - if (TOKEN_EOL == token.type) - goto udata_err; - - sectname = Safe_strdup(get_pragma_string(&token)); - - cp = get_pragma_token(cp, &token); - if (TOKEN_EOL == token.type) + if (TOKEN_STR == token.type) + sectname = Safe_strdup(get_pragma_string(&token)); + else { - udata_err: - //fprintf (stderr, "%s:%d: #pragma udata [section-name] [symbol] -- section-name or symbol missing!\n", filename, lineno); err = 1; break; } - symname = get_pragma_string(&token); cp = get_pragma_token(cp, &token); - if (TOKEN_EOL != token.type) + if (TOKEN_STR == token.type) + symname = get_pragma_string(&token); + else { + //fprintf (stderr, "%s:%d: #pragma udata [section-name] [symbol] -- section-name or symbol missing!\n", filename, lineno); err = 1; - break; + symname = NULL; } - while (symname) { - ssym = Safe_calloc(1, sizeof(sectSym)); - ssym->name = Safe_calloc(1, strlen(symname) + 2); - sprintf(ssym->name, "%s%s", port->fun_prefix, symname); - ssym->reg = NULL; + while (symname) + { + ssym = Safe_calloc(1, sizeof(sectSym)); + ssym->name = Safe_calloc(1, strlen(symname) + 2); + sprintf(ssym->name, "%s%s", port->fun_prefix, symname); + ssym->reg = NULL; - addSet(§Syms, ssym); + addSet(§Syms, ssym); - nsym = newSymbol((char *)symname, 0); - strcpy(nsym->rname, ssym->name); + nsym = newSymbol((char *)symname, 0); + strcpy(nsym->rname, ssym->name); #if 0 - checkAddSym(&publics, nsym); + checkAddSym(&publics, nsym); #endif - found = 0; - for (snam = setFirstItem(sectNames);snam;snam=setNextItem(sectNames)) { - if (!strcmp(sectname, snam->name)){ found=1; break; } - } + found = 0; + for (snam = setFirstItem(sectNames);snam;snam=setNextItem(sectNames)) + { + if (!strcmp(sectname, snam->name)) + { + found=1; + break; + } + } - if(!found) { - snam = Safe_calloc(1, sizeof(sectName)); - snam->name = Safe_strdup(sectname); - snam->regsSet = NULL; + if(!found) + { + snam = Safe_calloc(1, sizeof(sectName)); + snam->name = Safe_strdup(sectname); + snam->regsSet = NULL; - addSet(§Names, snam); - } + addSet(§Names, snam); + } - ssym->section = snam; + ssym->section = snam; #if 0 - fprintf(stderr, "%s:%d placing symbol %s at section %s (%p)\n", __FILE__, __LINE__, - ssym->name, snam->name, snam); + fprintf(stderr, "%s:%d placing symbol %s at section %s (%p)\n", __FILE__, __LINE__, + ssym->name, snam->name, snam); #endif - cp = get_pragma_token(cp, &token); - symname = (TOKEN_EOL != token.type) ? get_pragma_string(&token) : NULL; - } + cp = get_pragma_token(cp, &token); + if (TOKEN_STR == token.type) + symname = get_pragma_string(&token); + else if (TOKEN_EOL == token.type) + symname = NULL; + else + { + err = 1; + symname = NULL; + } + } - Safe_free(sectname); + Safe_free(sectname); } break; diff --git a/support/cpp2/sdcpp.h b/support/cpp2/sdcpp.h index ef10f288..9f7ece75 100644 --- a/support/cpp2/sdcpp.h +++ b/support/cpp2/sdcpp.h @@ -3,7 +3,11 @@ #ifdef _WIN32 #include +#ifdef __BORLANDC__ #define strcasecmp stricmp +#else +#define strcasecmp _stricmp +#endif #endif #define BYTES_BIG_ENDIAN 0