From: MaartenBrock Date: Wed, 5 Sep 2007 12:40:01 +0000 (+0000) Subject: * src/mcs51/gen.c (genReceive): fixed bug 1788177 X-Git-Url: https://git.gag.com/?p=fw%2Fsdcc;a=commitdiff_plain;h=798a219a3db09c77b08d014f77cce8dc978b49cf * src/mcs51/gen.c (genReceive): fixed bug 1788177 * support/regression/tests/bug1788177.c: new, added git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4911 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index 4ffdad05..4a877ea5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,12 @@ +2007-09-05 Maarten Brock + + * src/mcs51/gen.c (genReceive): fixed bug 1788177 + * support/regression/tests/bug1788177.c: new, added + 2007-09-04 Frieder Ferlemann - * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code - * device/include/mcs51/lint.h added keyword __naked + * doc/sdccman.lyx: mentioned d52 and cmake, customizing startup code + * device/include/mcs51/lint.h added keyword __naked 2007-09-04 Maarten Brock diff --git a/src/mcs51/gen.c b/src/mcs51/gen.c index e9f0df3c..20fefb21 100644 --- a/src/mcs51/gen.c +++ b/src/mcs51/gen.c @@ -11630,7 +11630,10 @@ genReceive (iCode * ic) } else if (ic->argreg > 12) { /* bit parameters */ - if (OP_SYMBOL (IC_RESULT (ic))->regs[0]->rIdx != ic->argreg-5) + regs *reg = OP_SYMBOL (IC_RESULT (ic))->regs[0]; + + BitBankUsed = 1; + if (!reg || reg->rIdx != ic->argreg-5) { aopOp (IC_RESULT (ic), ic, FALSE); emitcode ("mov", "c,%s", rb1regs[ic->argreg-5]); diff --git a/support/regression/tests/bug1788177.c b/support/regression/tests/bug1788177.c new file mode 100644 index 00000000..acd7d875 --- /dev/null +++ b/support/regression/tests/bug1788177.c @@ -0,0 +1,24 @@ +/* + bug 1788177 +*/ + +#include +#include + +#ifdef __bool_true_false_are_defined + +bool var; + +// no need to call this, it generates compiler error: +// Caught signal 11: SIGSEGV +void foo(bool parm) { + var = parm; +} + +#endif + +void +testBug(void) +{ + ASSERT(1); +}