From 53aa65126ec2bd463145ebbeacac554196789b53 Mon Sep 17 00:00:00 2001 From: borutr Date: Sun, 16 Dec 2007 16:18:03 +0000 Subject: [PATCH] * device/include/pic16/stdbool.h: removed, since already exists in device/include/; this also fixes bitopcse.c regression test for pic16 target * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED * src/pic16/glue.c: fixed bug #1851855: generic static pointer dereference doesn't work; covered by regression test bug1399290 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4979 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 2 ++ src/pic16/glue.c | 47 ++++++++++++++++++++++++++--------------------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1cbe192a..5f3d8c84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ device/include/; this also fixes bitopcse.c regression test for pic16 target * support/regression/fwk/inclusw/testfwk.h: added macro ASSERT_FAILED + * src/pic16/glue.c: fixed bug #1851855: generic static pointer + dereference doesn't work; covered by regression test bug1399290 2007-12-05 Borut Razem diff --git a/src/pic16/glue.c b/src/pic16/glue.c index df0201da..a0a1e257 100644 --- a/src/pic16/glue.c +++ b/src/pic16/glue.c @@ -520,10 +520,10 @@ void _pic16_printPointerType (const char *name, char ptype, void *p) { char buf[256]; - sprintf(buf, "LOW(%s)", name); - pic16_emitDS(buf, ptype, p); - sprintf(buf, "HIGH(%s)", name); - pic16_emitDS(buf, ptype, p); + sprintf (buf, "LOW(%s)", name); + pic16_emitDS (buf, ptype, p); + sprintf (buf, "HIGH(%s)", name); + pic16_emitDS (buf, ptype, p); } /*-----------------------------------------------------------------*/ @@ -543,28 +543,33 @@ void pic16_printGPointerType (const char *iname, const unsigned int itype, { char buf[256]; - _pic16_printPointerType (iname, ptype, p); + _pic16_printPointerType (iname, ptype, p); - switch( itype ) { + switch (itype) + { + case CPOINTER: + case FUNCTION: + sprintf (buf, "UPPER(%s)", iname); + pic16_emitDS (buf, ptype, p); + break; + + case GPOINTER: + case POINTER: + sprintf (buf, "0x80"); + pic16_emitDS (buf, ptype, p); + break; + + /* + * FPOINTER and IPOINTER are not used in pic16 port case FPOINTER: - case CPOINTER: - case GPOINTER: - case FUNCTION: - { - sprintf(buf, "UPPER(%s)", iname); - pic16_emitDS(buf, ptype, p); - }; break; - case POINTER: case IPOINTER: - sprintf(buf, "0x80"); - pic16_emitDS(buf, ptype, p); - break; - default: - debugf("itype = %d\n", itype ); - assert( 0 ); + */ + default: + debugf ("itype = %d\n", itype ); + assert (0); } - //pic16_flushDB(ptype, p); /* might break char* const arr[] = {...}; */ + //pic16_flushDB(ptype, p); /* might break char* const arr[] = {...}; */ } -- 2.30.2