* src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 17 Nov 2007 10:55:04 +0000 (10:55 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 17 Nov 2007 10:55:04 +0000 (10:55 +0000)
  #983491 - "Merge duplicate strings function is ineffective"
* support/regression/tests/bug-983491.c: regtest disabled

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4966 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCglue.c
src/pic16/glue.c
support/regression/tests/bug-983491.c

index 11317a604ba030e53ad036223b838ebd5c04c318..235ccf38c5fb371d960ed6024833c56e0e4e986c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-17 Borut Razem <borut.razem AT siol.net>
+
+       * src/SDCCglue.c, src/pic16/glue.c: reverted fix for bug
+         #983491 - "Merge duplicate strings function is ineffective"
+       * support/regression/tests/bug-983491.c: regtest disabled
+
 2007-11-15 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * device/include/stdarg.h: added and removed some casts
index 32e4e654f31c18817904bcc9097ce799f34d5caa..ef9204fcf7cf01a877b035011be41c371df2733a 100644 (file)
@@ -1270,8 +1270,10 @@ emitStaticSeg (memmap * map, struct dbuf_s * oBuf)
                   dbuf_tprintf (oBuf, "\t!org\n", SPEC_ADDR (sym->etype));
                 }
               dbuf_printf (oBuf, "%s:\n", sym->rname);
+              ++noAlloc;
               resolveIvalSym (sym->ival, sym->type);
               printIval (sym, sym->type, sym->ival, oBuf);
+              --noAlloc;
               /* if sym is a simple string and sym->ival is a string,
                  WE don't need it anymore */
               if (IS_ARRAY(sym->type) && IS_CHAR(sym->type->next) &&
index 811d265934bc189a40538618b877a6765b7b30be..df0201da3815491826e593d747777403f29306f2 100644 (file)
@@ -1383,6 +1383,7 @@ CODESPACE: %d\tCONST: %d\tPTRCONST: %d\tSPEC_CONST: %d\n", __FUNCTION__,
 
               /* symbol doesn't have absolute address but has initial value */
               dbuf_printf (&code->oBuf, "%s:\n", sym->rname);
+              ++noAlloc;
               resolveIvalSym (sym->ival, sym->type);
 
               pb = pic16_newpCodeChain(NULL, 'P',pic16_newpCodeCharP("; Starting pCode block for Ival"));
@@ -1399,6 +1400,7 @@ CODESPACE: %d\tCONST: %d\tPTRCONST: %d\tSPEC_CONST: %d\n", __FUNCTION__,
               //fprintf(stderr, "%s:%d [2] generating init for label: %s\n", __FILE__, __LINE__, sym->rname);
               pic16_printIval(sym, sym->type, sym->ival, 'p', (void *)pb);
               pic16_flushDB('p', (void *)pb);
+              --noAlloc;
             } else {
 
               /* symbol doesn't have absolute address and no initial value */
index 31dbe8fd24ff4ccd5ba0b0f66307f5664dbb1402..72e2a79a26064c5a186337471e0693f6bdd0b18e 100644 (file)
@@ -3,14 +3,21 @@
 
 #include <testfwk.h>
 
+/*
+ * test disabled since the fix was reverted 
+ */
+
+/*
 code struct {
   char* b;
 } c[2] = {
   {"abc"},
   {"abc"}
 };
+*/
 
+void
 testMergeStr(void)
 {
-  ASSERT(c[0].b == c[1].b);
+/*  ASSERT(c[0].b == c[1].b); */
 }