From 91fa3abd8ad108b7958a73bc5f374328777994e4 Mon Sep 17 00:00:00 2001 From: bernhardheld Date: Sun, 12 Jan 2003 21:30:59 +0000 Subject: [PATCH] * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking * src/SDCCutil.c (join): ugly bug: missing '\0' * as/mcs51/lkmem.c (summary): sp on address 7 is save git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2150 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 6 +++++ as/mcs51/lkmem.c | 57 +++++++++++++++++++++++++----------------------- src/SDCCmain.c | 11 ++++++---- src/SDCCutil.c | 2 +- 4 files changed, 44 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 74b2092a..68194eaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-01-12 Bernhard Held + + * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking + * src/SDCCutil.c (join): ugly bug: missing '\0' + * as/mcs51/lkmem.c (summary): sp on address 7 is save + 2003-01-11 Bernhard Held * src/SDCCmain.c (assemble, linkEdit): preparations for -o diff --git a/as/mcs51/lkmem.c b/as/mcs51/lkmem.c index c5b3d943..ae09af3f 100644 --- a/as/mcs51/lkmem.c +++ b/as/mcs51/lkmem.c @@ -254,40 +254,43 @@ int summary(struct area * areap) fprintf(of, "\nStack starts at: 0x%02lx", Stack.Start); /*Check that the stack pointer is landing in a safe place:*/ - if( (dram[Stack.Start] & 0x8000) == 0x8000 ) + // if (!flat24Mode) TODO: bypass stack check for ds390 { - fprintf(of, ".\n"); - sprintf(buff, "Stack set to unavailable memory.\n"); - REPORT_ERROR(buff, 1); - } - else if(dram[Stack.Start]) - { - fprintf(of, ".\n"); - sprintf(buff, "Stack overlaps area "); - REPORT_ERROR(buff, 1); - for(j=0; j<7; j++) + if( (dram[Stack.Start] & 0x8000) == 0x8000 ) { - if(dram[Stack.Start]&Ram[j].flag) - { - sprintf(buff, "'%s'\n", Ram[j].Name); - break; - } + fprintf(of, ".\n"); + sprintf(buff, "Stack set to unavailable memory.\n"); + REPORT_ERROR(buff, 1); } - if(dram[Stack.Start]&IRam.flag) + else if(dram[Stack.Start+1]) { - sprintf(buff, "'%s'\n", IRam.Name); + fprintf(of, ".\n"); + sprintf(buff, "Stack overlaps area "); + REPORT_ERROR(buff, 1); + for(j=0; j<7; j++) + { + if(dram[Stack.Start+1]&Ram[j].flag) + { + sprintf(buff, "'%s'\n", Ram[j].Name); + break; + } + } + if(dram[Stack.Start]&IRam.flag) + { + sprintf(buff, "'%s'\n", IRam.Name); + } + REPORT_ERROR(buff, 0); } - REPORT_ERROR(buff, 0); - } - else - { - for(j=Stack.Start, k=0; (j<(int)iram_size)&&(dram[j]==0); j++, k++); - fprintf(of, " with %d bytes available\n", k); - if (kfinaliseOptions (). + And the z80 port needs port->finaliseOptions(), + even if we're only linking. */ + initMem (); + port->finaliseOptions (); + if (fullSrcFileName) { - - initMem (); - - port->finaliseOptions (); preProcess (envp); initSymt (); diff --git a/src/SDCCutil.c b/src/SDCCutil.c index 75475d3d..0247d894 100644 --- a/src/SDCCutil.c +++ b/src/SDCCutil.c @@ -72,7 +72,6 @@ char * join(const char **pplist) { char *pinto = buffer; - *pinto = '\0'; while (*pplist) { @@ -81,6 +80,7 @@ join(const char **pplist) *pinto++ = ' '; pplist++; } + *pinto = '\0'; return buffer; } -- 2.39.5