From fc8646bb1231e94a18de8a0349bfb505a3da9a4e Mon Sep 17 00:00:00 2001 From: tecodev Date: Mon, 26 Jan 2009 18:27:05 +0000 Subject: [PATCH] * src/pic16/ralloc.c (packForPush): disabled to fix #2496919 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5350 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 4 ++++ src/pic16/ralloc.c | 26 +++++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index aefa112d..acf3e1c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-01-26 Raphael Neider + + * src/pic16/ralloc.c (packForPush): disabled to fix #2496919 + 2008-01-25 Raphael Neider * src/pic16/main.c (_pic16_linkEdit): prepend -L paths to linker diff --git a/src/pic16/ralloc.c b/src/pic16/ralloc.c index c626d27f..68a27ed0 100644 --- a/src/pic16/ralloc.c +++ b/src/pic16/ralloc.c @@ -3800,17 +3800,25 @@ packForPush (iCode * ic, eBBlock * ebp) - /* we now we know that it has one & only one def & use - and the that the definition is an assignment */ - IC_LEFT (ic) = IC_RIGHT (dic); + /* + * The following code causes segfaults, e.g., + * #2496919 Internal error with pic16 sdcc + * and is thus disabled for now. + */ + if (0) + { + /* we now we know that it has one & only one def & use + and the that the definition is an assignment */ + IC_LEFT (ic) = IC_RIGHT (dic); - iLine = printILine(dic); - debugf("remiCodeFromeBBlock: %s\n", iLine); - dbuf_free(iLine); + iLine = printILine(dic); + debugf("remiCodeFromeBBlock: %s\n", iLine); + dbuf_free(iLine); - remiCodeFromeBBlock (ebp, dic); - bitVectUnSetBit(OP_SYMBOL(IC_RESULT(dic))->defs,dic->key); - hTabDeleteItem (&iCodehTab, dic->key, dic, DELETE_ITEM, NULL); + remiCodeFromeBBlock (ebp, dic); + bitVectUnSetBit(OP_SYMBOL(IC_RESULT(dic))->defs,dic->key); + hTabDeleteItem (&iCodehTab, dic->key, dic, DELETE_ITEM, NULL); + } // if } static void printSymType(char * str, sym_link *sl) -- 2.30.2