From 3eee2af73a8f00faedfc9e99a8e64a44ef766ee0 Mon Sep 17 00:00:00 2001 From: borutr Date: Sat, 17 Nov 2007 10:55:04 +0000 Subject: [PATCH] * 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 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4966 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 6 ++++++ src/SDCCglue.c | 2 ++ src/pic16/glue.c | 2 ++ support/regression/tests/bug-983491.c | 9 ++++++++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 11317a60..235ccf38 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-11-17 Borut Razem + + * 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 * device/include/stdarg.h: added and removed some casts diff --git a/src/SDCCglue.c b/src/SDCCglue.c index 32e4e654..ef9204fc 100644 --- a/src/SDCCglue.c +++ b/src/SDCCglue.c @@ -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) && diff --git a/src/pic16/glue.c b/src/pic16/glue.c index 811d2659..df0201da 100644 --- a/src/pic16/glue.c +++ b/src/pic16/glue.c @@ -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 */ diff --git a/support/regression/tests/bug-983491.c b/support/regression/tests/bug-983491.c index 31dbe8fd..72e2a79a 100644 --- a/support/regression/tests/bug-983491.c +++ b/support/regression/tests/bug-983491.c @@ -3,14 +3,21 @@ #include +/* + * 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); */ } -- 2.47.2