summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--support/regression/MakeList44
-rw-r--r--support/regression/fwk/lib/testfwk.c55
-rw-r--r--support/regression/tests/absolute.c.in4
-rw-r--r--support/regression/tests/addsub.c.in6
-rw-r--r--support/regression/tests/and_survive.c7
-rw-r--r--support/regression/tests/array.c.in2
-rw-r--r--support/regression/tests/ast_constant_folding.c3
-rw-r--r--support/regression/tests/ato.c2
-rw-r--r--support/regression/tests/bigstack.c.in4
-rw-r--r--support/regression/tests/bitfields-bits1.c.in2
-rw-r--r--support/regression/tests/bitfields-bits2.c.in4
-rw-r--r--support/regression/tests/bitfields-checks.c.in2
-rw-r--r--support/regression/tests/bitfields-nibbles.c.in2
-rw-r--r--support/regression/tests/bitfields.c24
-rw-r--r--support/regression/tests/bitint.c.in3
-rw-r--r--support/regression/tests/bitintarith.c.in4
-rw-r--r--support/regression/tests/bitintbitfield.c3
-rw-r--r--support/regression/tests/bitintfromfloat.c.in4
-rw-r--r--support/regression/tests/bitintrot.c.in5
-rw-r--r--support/regression/tests/bitinttofloat.c.in4
-rw-r--r--support/regression/tests/bitwise.c.in8
-rw-r--r--support/regression/tests/bool.c3
-rw-r--r--support/regression/tests/bp.c2
-rw-r--r--support/regression/tests/bug1057979.c2
-rw-r--r--support/regression/tests/bug1115321.c4
-rw-r--r--support/regression/tests/bug1520966.c2
-rw-r--r--support/regression/tests/bug1551947.c2
-rw-r--r--support/regression/tests/float.c.in6
-rw-r--r--support/regression/tests/float_single.c.in4
-rw-r--r--support/regression/tests/float_trans.c.in2
-rw-r--r--support/regression/tests/frexpf.c2
-rw-r--r--support/regression/tests/iso646.c.in2
-rw-r--r--support/regression/tests/itoa.c.in2
-rw-r--r--support/regression/tests/libmullong.c.in5
-rw-r--r--support/regression/tests/logic.c.in5
-rw-r--r--support/regression/tests/lonesha256.c4
-rw-r--r--support/regression/tests/longlong.c.in4
-rw-r--r--support/regression/tests/ltoa.c.in2
-rw-r--r--support/regression/tests/muldiv.c.in12
-rw-r--r--support/regression/tests/reentrant.c.in4
-rw-r--r--support/regression/tests/rotate.c.in5
-rw-r--r--support/regression/tests/rotate2.c.in4
-rw-r--r--support/regression/tests/sha3-256.c4
-rw-r--r--support/regression/tests/shifts.c.in10
-rw-r--r--support/regression/tests/shifts2.c.in2
-rw-r--r--support/regression/tests/shifts3.c.in4
-rw-r--r--support/regression/tests/sizeof.c.in4
-rw-r--r--support/regression/tests/snprintf.c.in2
-rw-r--r--support/regression/tests/stack-restore.c.in2
-rw-r--r--support/regression/tests/stacks.c.in2
-rw-r--r--support/regression/tests/structparam.c.in4
-rw-r--r--support/regression/tests/structreturn.c.in4
-rw-r--r--support/regression/tests/switch.c.in9
-rw-r--r--support/regression/tests/vaargs.c.in4
-rw-r--r--support/regression/tests/wchar.c.in11
-rw-r--r--support/regression/tests/wcsnlen.c2
-rw-r--r--support/regression/tests/wcsto.c4
-rw-r--r--support/regression/tests/widebitintbitfield.c.in4
-rw-r--r--support/regression/tests/zeropad.c.in4
60 files changed, 194 insertions, 160 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ef58035b..79140bc6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2025-08-11 Philipp Klaus Krause <philipp@colecovision.eu>
+
+ * support/regression/MakeList,
+ support/regression/fwk/lib/testfwk.c,
+ support/regression/tests/*.c.in,
+ support/regression/tests/*.c:
+ Disable some tests for pdk13 where they won't work due to lack of target memory.
+
2025-08-10 Philipp Klaus Krause <philipp@colecovision.eu>
* device/lib/pdk13/Makefile.in,
diff --git a/support/regression/MakeList b/support/regression/MakeList
index 166ebd2cf..da72f65d3 100644
--- a/support/regression/MakeList
+++ b/support/regression/MakeList
@@ -11,7 +11,45 @@ EXCLUDE_host += \
###############################################
-# Relies on feeatures of older C standards not supported by curent host compilers.
+# Target doesn't have enough memory
+EXCLUDE_pdk13 += \
+ tst_bug1057979 \
+ tst_bug1115321 \
+ tst_bug1520966 \
+ tst_bug1551947 \
+ tst_frexpf \
+ tst_lonesha256 \
+ tst_sha3-256 \
+ tst_wcsnlen \
+ tst_wcsto
+EXCLUDE_pdk14 += \
+ tst_bug1057979 \
+ tst_bug1115321 \
+ tst_bug1520966 \
+ tst_bug1551947 \
+ tst_frexpf \
+ tst_lonesha256 \
+ tst_sha3-256 \
+ tst_wcsnlen \
+ tst_wcsto
+EXCLUDE_pdk15 += \
+ tst_bug1520966 \
+ tst_bug1551947 \
+ tst_lonesha256 \
+ tst_sha3-256 \
+ tst_wcsto
+EXCLUDE_pdk15-stack-auto += \
+ tst_bug1057979 \
+ tst_bug1520966 \
+ tst_bug1551947 \
+ tst_lonesha256 \
+ tst_sha3-256 \
+ tst_wcsto
+
+###################################################
+# GCC Tests
+
+# Relies on features of older C standards not supported by current host compilers.
EXCLUDE_host += \
qct_0026-implicitret \
gte_920908-2 \
@@ -313,8 +351,10 @@ EXCLUDE_ARCH_mcs51 += \
qct_0051-inits
# Target doesn't have enough memory
+EXCLUDE_pdk13 += \
+ qct_0057-duff \
+ qct_0080-arrays
EXCLUDE_pdk14 += \
- qct_0049-inits \
qct_0057-duff \
qct_0080-arrays
EXCLUDE_pdk15 += \
diff --git a/support/regression/fwk/lib/testfwk.c b/support/regression/fwk/lib/testfwk.c
index 715724a75..f0cc58121 100644
--- a/support/regression/fwk/lib/testfwk.c
+++ b/support/regression/fwk/lib/testfwk.c
@@ -51,16 +51,11 @@ __printNibble (unsigned char c)
_putchar(c);
}
void
-__printd (int n)
+__printu (unsigned int n)
{
unsigned char chr;
#define SWAP_BYTE(x) ((x) >> 4 | (x) << 4)
- if (0 > n)
- {
- n = -n;
- _putchar('-');
- }
_putchar('x');
// This seems to be the most efficient way to do it for PDK (both in RAM & ROM)
@@ -78,40 +73,6 @@ __printd (int n)
}
#else
void
-__printd (int n)
-{
- if (0 == n)
- {
- _putchar('0');
- }
- else
- {
- static char MEMSPACE_BUF buf[6];
- char MEMSPACE_BUF *p = &buf[sizeof (buf) - 1];
- char neg = 0;
-
- buf[sizeof(buf) - 1] = '\0';
-
- if (0 > n)
- {
- n = -n;
- neg = 1;
- }
-
- while (0 != n)
- {
- *--p = '0' + __mod (n, 10);
- n = __div (n, 10);
- }
-
- if (neg)
- _putchar('-');
-
- __prints(p);
- }
-}
-
-void
__printu (unsigned int n)
{
if (0 == n)
@@ -223,7 +184,7 @@ __fail (__code const char *szMsg, __code const char *szCond, __code const char *
__prints(" at ");
__prints(szFile);
_putchar(':');
- __printd(line);
+ __printu(line);
_putchar('\n');
__numFailures++;
@@ -241,19 +202,19 @@ main (void)
__runSuite();
__prints("--- Summary: ");
- __printd(__numFailures);
+ __printu(__numFailures);
_putchar('/');
- __printd(__numTests);
+ __printu(__numTests);
_putchar('/');
- __printd(__numCases);
+ __printu(__numCases);
#ifndef TARGET_VERY_LOW_MEMORY
__prints(": ");
- __printd(__numFailures);
+ __printu(__numFailures);
__prints(" failed of ");
- __printd(__numTests);
+ __printu(__numTests);
__prints(" tests in ");
- __printd(__numCases);
+ __printu(__numCases);
__prints(" cases.\n");
#else
_putchar('\n');
diff --git a/support/regression/tests/absolute.c.in b/support/regression/tests/absolute.c.in
index bcbfb2399..c311d6cb0 100644
--- a/support/regression/tests/absolute.c.in
+++ b/support/regression/tests/absolute.c.in
@@ -17,7 +17,7 @@
# define ADDRESS(x) (0xCA ## x)
#endif
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // TODO: Make test suitable for pdk
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // TODO: Make test suitable for pdk
typedef struct
{
int a, b;
@@ -46,7 +46,7 @@ char z = 'z';
void
testAbsolute(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // TODO: Make test suitable for pdk
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // TODO: Make test suitable for pdk
#if !defined(PORT_HOST)
static {mem} char __at(ADDRESS(B6)) s = 's';
char {mem} *pC = (char {mem} *)(ADDRESS(B0));
diff --git a/support/regression/tests/addsub.c.in b/support/regression/tests/addsub.c.in
index 1d07d1499..2e0fe3b55 100644
--- a/support/regression/tests/addsub.c.in
+++ b/support/regression/tests/addsub.c.in
@@ -48,19 +48,20 @@ testAdd(void)
result = left + right;
ASSERT(result == ({type})(0x5500 + 0x0a00));
-
+#if !defined (__SDCC_pdk13) // Not enough code memory - just a few bytes, this should work with more optimizations
left = 0x550000ul;
result = left + 0x0a0000ul;
ASSERT(result == ({type})(0x550000ul + 0x0a0000ul));
ASSERT(add_func(0) == ({type})(5ul << 16));
+#endif
}
void
testSub(void)
{
-#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
+#if !defined (__SDCC_pdk13) && !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
{storage} {attr} {type} left, right, result;
left = 5;
@@ -91,3 +92,4 @@ testSub(void)
ASSERT(result == ({type})(-39-(signed)0x1200));
#endif
}
+
diff --git a/support/regression/tests/and_survive.c b/support/regression/tests/and_survive.c
index b56049c6c..2056dab4b 100644
--- a/support/regression/tests/and_survive.c
+++ b/support/regression/tests/and_survive.c
@@ -50,7 +50,7 @@ int litbitchar2 (unsigned char a, unsigned char c, unsigned char e)
else
return(3);
}
-
+#ifndef __SDCC_pdk13 // Lack of code memory
/* Some architectures have non-destructive and when one operand is a literal with at most one bit per byte set (e.g. Z80) */
int litbitint (unsigned int a)
{
@@ -96,14 +96,14 @@ int regchar (unsigned char a, unsigned char c)
else
return(3);
}
-
+#endif
void testAndSurvive (void)
{
ASSERT (litbitchar (0x77u - 1) == 0);
ASSERT (litbitchar (0x74u - 1) == 1);
ASSERT (litbitchar (0x70u - 1) == 2);
ASSERT (litbitchar (0x80u - 1) == 3);
-
+#ifndef __SDCC_pdk13 // Those tests would pass, we just don't have enough space in code memory to fit them in together with the others.
ASSERT (litbitchar2 (0x01u - 1, 0x01u - 1, 0x01u) == 8);
ASSERT (litbitchar2 (0x01u - 1, 0x80u - 1, 0x01u) == 10);
ASSERT (litbitchar2 (0x74u - 1, 0x01u - 1, 0x01u) == 1);
@@ -125,5 +125,6 @@ void testAndSurvive (void)
ASSERT (regchar (0x80u - 1, 0x88u - 1) == 1);
ASSERT (regchar (0x80u - 1, 0x08u - 1) == 3);
#endif
+#endif
}
diff --git a/support/regression/tests/array.c.in b/support/regression/tests/array.c.in
index 4b29d7e4e..b71549e52 100644
--- a/support/regression/tests/array.c.in
+++ b/support/regression/tests/array.c.in
@@ -22,7 +22,7 @@ volatile unsigned {type} idx2;
void
testArrayAccess(void)
{
-#ifndef __SDCC_pdk14 // Not enough RAM for all the temporaries.
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Not enough RAM for all the temporaries.
idx = 2;
ASSERT(array_const_char[idx] == TC(2));
diff --git a/support/regression/tests/ast_constant_folding.c b/support/regression/tests/ast_constant_folding.c
index 66767afe6..08edbc052 100644
--- a/support/regression/tests/ast_constant_folding.c
+++ b/support/regression/tests/ast_constant_folding.c
@@ -73,7 +73,10 @@ test_ast_cf(void)
ASSERT(foo_ssl() == -67);
ASSERT(foo_sa () == -37);
ASSERT(foo_mul() == 54000);
+#ifndef __SDCC_pdk13 // Those tests would pass, we just don't have enough space in code memory to fit them in together with the others. With a little bit more optimization, this should work - we lack only 15B
i = 3; ASSERT(foo_div() == 20);
i = 3; ASSERT(foo_or () == 15);
i = 7; ASSERT(foo_and() == 4);
+#endif
}
+
diff --git a/support/regression/tests/ato.c b/support/regression/tests/ato.c
index b8230e306..81714d7b5 100644
--- a/support/regression/tests/ato.c
+++ b/support/regression/tests/ato.c
@@ -13,7 +13,7 @@ testAto(void)
ASSERT (atoi ("-32768") == -32768);
ASSERT (atoi ("+32767") == +32767);
-#ifndef __SDCC_pdk14 // Not enough RAM
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Not enough RAM
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
ASSERT (atol ("-2147483648") == -2147483648l);
ASSERT (atol ("2147483647") == 2147483647l);
diff --git a/support/regression/tests/bigstack.c.in b/support/regression/tests/bigstack.c.in
index 2cd80b84b..a883925a2 100644
--- a/support/regression/tests/bigstack.c.in
+++ b/support/regression/tests/bigstack.c.in
@@ -13,7 +13,9 @@
volatile {type1} int1;
volatile {type2} int2;
-#ifdef __SDCC_pdk14
+#ifdef __SDCC_pdk13
+#define ARRAYSIZE 20
+#elif defined (__SDCC_pdk14)
#define ARRAYSIZE 30
#elif defined (__SDCC_pdk15) || defined (__SDCC_mcs51) || defined (__SDCC_mos6502) || defined (__SDCC_mos65c02)
#define ARRAYSIZE 60
diff --git a/support/regression/tests/bitfields-bits1.c.in b/support/regression/tests/bitfields-bits1.c.in
index 286411f4c..f09876795 100644
--- a/support/regression/tests/bitfields-bits1.c.in
+++ b/support/regression/tests/bitfields-bits1.c.in
@@ -9,7 +9,7 @@
// Disable for ds390: bug #3211
// Absolute addressing has some issues for pdk. And if those are fixed, there might be alack of memory, still.
// mcs51 fails tests. Don't know if that is a bug or just a bad choice for ABS_ADDR1 and ABS_ADDR2 below.
-#if defined(__SDCC_ds390) || defined(__SDCC_pdk14) || defined(__SDCC_pdk15) || defined(__SDCC_mcs51)
+#if defined(__SDCC_ds390) || defined(__SDCC_pdk13) || defined(__SDCC_pdk14) || defined(__SDCC_pdk15) || defined(__SDCC_mcs51)
#define DUMMY_CASE
#endif
diff --git a/support/regression/tests/bitfields-bits2.c.in b/support/regression/tests/bitfields-bits2.c.in
index 5dcdae6a9..5b58b7c04 100644
--- a/support/regression/tests/bitfields-bits2.c.in
+++ b/support/regression/tests/bitfields-bits2.c.in
@@ -62,7 +62,7 @@ bits_check_value_no_cast(const struct_8bits * var, const uint8_t value)
#define CAST_TO_UINT8(x) ((uint8_t)(x))
// Lack of memory.
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15)
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15)
bool
bits_check_value(const struct_8bits * const var, const uint8_t value)
@@ -113,7 +113,7 @@ static void
testBitfields(void)
{
// Lack of memory.
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15)
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15)
volatile struct_8bits volatileBits;
BITS_SET_AND_CHECK(0x00);
diff --git a/support/regression/tests/bitfields-checks.c.in b/support/regression/tests/bitfields-checks.c.in
index ab7c48307..9b49873e6 100644
--- a/support/regression/tests/bitfields-checks.c.in
+++ b/support/regression/tests/bitfields-checks.c.in
@@ -9,7 +9,7 @@
// Disable for ds390: bug #3211
// Absolute addressing has some issues for pdk. And if those are fixed, there might be a lack of memory, still.
// mcs51 creates invalid assembler. Don't know if that is a bug or just a bad choice for ABS_ADDR1 and ABS_ADDR2 below.
-#if defined(__SDCC_ds390) || defined(__SDCC_pdk14) || defined(__SDCC_pdk15) || defined(__SDCC_mcs51)
+#if defined(__SDCC_ds390) || defined(__SDCC_pdk13) || defined(__SDCC_pdk14) || defined(__SDCC_pdk15) || defined(__SDCC_mcs51)
#define DUMMY_CASE
#endif
diff --git a/support/regression/tests/bitfields-nibbles.c.in b/support/regression/tests/bitfields-nibbles.c.in
index 6ea1d206a..aab97d2a1 100644
--- a/support/regression/tests/bitfields-nibbles.c.in
+++ b/support/regression/tests/bitfields-nibbles.c.in
@@ -10,7 +10,7 @@
#pragma disable_warning 88 // cast of LITERAL value to 'generic' pointer
// Absolute addressing has some issues for pdk. And if those are fixed, there might be a lack of memory, still.
-#if defined(__SDCC_pdk14) || defined(__SDCC_pdk15)
+#if defined(__SDCC_pdk13) || defined(__SDCC_pdk14) || defined(__SDCC_pdk15)
#define DUMMY_CASE
#endif
diff --git a/support/regression/tests/bitfields.c b/support/regression/tests/bitfields.c
index 29eebc00b..ffd2208eb 100644
--- a/support/regression/tests/bitfields.c
+++ b/support/regression/tests/bitfields.c
@@ -10,7 +10,7 @@ struct {
char c3_5 : 5;
} c_bf;
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !defined(__SDCC_pic16)
struct {
int i0_7 : 7;
@@ -121,6 +121,7 @@ testBitfieldSizeof(void)
ASSERT( sizeof(size3a_bf) >= 2);
ASSERT( sizeof(size1a_bf) <= sizeof(size1b_bf));
#endif /* !__SDCC_pic16 */
+#if !defined (__SDCC_pdk13) // Lack of memory
/* Some SDCC specific assertions. SDCC uses 8 bit storage units.
Bitfields that are less than 8 bits, but would (due to earlier
bitfield declarations) span a storage unit boundary are
@@ -140,13 +141,14 @@ testBitfieldSizeof(void)
ASSERT( sizeof(size3a_bf) == 3);
#endif /* !__SDCC_pic16 */
#endif
+#endif
}
void
testBitfieldsSingleBitLiteral(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
#if !defined(__SDCC_pic16)
size2b_bf.b0 = 0;
@@ -204,7 +206,7 @@ testBitfieldsSingleBitLiteral(void)
void
testBitfieldsSingleBit(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
#if !defined(__SDCC_pic16)
volatile unsigned char c;
@@ -267,7 +269,7 @@ testBitfieldsSingleBit(void)
void
testBitfieldsMultibitLiteral(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if !defined(__SDCC_pic16)
size2c_bf.b0 = 0xff; /* should truncate to 0x0f */
size2c_bf.b1 = 0;
@@ -325,7 +327,7 @@ testBitfieldsMultibitLiteral(void)
void
testBitfieldsMultibit(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if !defined(__SDCC_pic16)
volatile int allones = 0xffff;
volatile int zero = 0;
@@ -406,7 +408,7 @@ testBitfields(void)
void
testSignedBitfields(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if !defined(__SDCC_pic16)
s_bf.s0_7 = 0xf0;
s_bf.s7_1 = 1;
@@ -431,7 +433,7 @@ testSignedBitfields(void)
}
/* test case for enhancement request #2291335 : Unnamed bit-field initialization */
-
+#if !defined (__SDCC_pdk13) // Lack of memory
struct s2291335_1 {
int a : 2;
char : 2;
@@ -446,10 +448,11 @@ struct s2291335_2 {
struct s2291335_1 gs2291335_1 = {1, 2};
struct s2291335_2 gs2291335_2 = {1, 2};
-
+#endif
void
__test2291335(void)
{
+#if !defined (__SDCC_pdk13) // Lack of memory
struct s2291335_1 ls2291335_1 = {1, 2};
struct s2291335_2 ls2291335_2 = {1, 2};
@@ -462,6 +465,7 @@ __test2291335(void)
ASSERT(ls2291335_1.b == 2);
ASSERT(ls2291335_2.a == 1);
ASSERT(ls2291335_2.b == 2);
+#endif
}
/* test case for bug #2366757: segfault when initializing structure with bitfield */
@@ -474,7 +478,7 @@ struct
/* test case for const struct with bitfields */
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#ifndef __SDCC_pic16 // TODO: enable when the pic16 ports supports bitfields of size greater than 8 bits!
const struct
{
@@ -501,7 +505,7 @@ const struct
void
testCS(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#ifndef __SDCC_pic16 // TODO: enable when the pic16 ports supports bitfields of size greater than 8 bits!
ASSERT(cs.a == 1);
ASSERT(cs.b == 2);
diff --git a/support/regression/tests/bitint.c.in b/support/regression/tests/bitint.c.in
index 2718d226a..f94cb37e1 100644
--- a/support/regression/tests/bitint.c.in
+++ b/support/regression/tests/bitint.c.in
@@ -55,7 +55,7 @@ void testBitInt(void)
bitinttype b = 1;
ASSERT(_Generic(++b, default: 1, bitinttype: 0) == 0); // ++a is not the same a += 1, but a += (bitinttype)1.
-
+#ifndef __SDCC_pdk13 // Lackof memory - with more optimization, we could enable a few more lines
// Cast from int
ASSERT((bitinttype)i == (bitinttype)42); // Explicit cast
b = i; // Implicit cast
@@ -78,5 +78,6 @@ void testBitInt(void)
ASSERT((bitinttype)b6 == (bitinttype)(unsigned _BitInt(6))0x5aff);
#endif
#endif
+#endif
}
diff --git a/support/regression/tests/bitintarith.c.in b/support/regression/tests/bitintarith.c.in
index 6edb9e167..df7af98b5 100644
--- a/support/regression/tests/bitintarith.c.in
+++ b/support/regression/tests/bitintarith.c.in
@@ -27,6 +27,7 @@ volatile char c = 1;
void testBitIntArith(void)
{
+#ifndef __SDCC_pdk13 // Lack of memory
#ifndef __clang_major__ // clang 11 doesn't support == between _BitInt and int
#if __SDCC_BITINT_MAXWIDTH >= {width} // TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
#if ({width} <= 40 || !defined (__SDCC_pdk14)) && ({width} <= 48 || !defined (__SDCC_pdk15)) // Lack of memory
@@ -63,7 +64,7 @@ void testBitIntArith(void)
ASSERT(ua + ub == (ubitinttype)(23) + (ubitinttype)(-42));
ASSERT(ua - ub == (ubitinttype)(23) - (ubitinttype)(-42));
-#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
#if {width} >= 11 // Signed overflow is undefined behaviour
ASSERT(a * b == (bitinttype)(23) * (bitinttype)(-42));
@@ -101,5 +102,6 @@ void testBitIntArith(void)
#endif
#endif
#endif
+#endif
}
diff --git a/support/regression/tests/bitintbitfield.c b/support/regression/tests/bitintbitfield.c
index 40743115e..d1d2ae38e 100644
--- a/support/regression/tests/bitintbitfield.c
+++ b/support/regression/tests/bitintbitfield.c
@@ -63,7 +63,7 @@ void testBitIntBitField(void)
ASSERT (ubf2.b2 == 2);
ASSERT (ubf2.b3 == 7);
ASSERT (ubf2.b4 == 5);
-
+#if !defined (__SDCC_pdk13) // Lack of memory
sbf.b3 = -1;
sbf.b4 = 0;
sbf.b = -1;
@@ -71,5 +71,6 @@ void testBitIntBitField(void)
ASSERT (sbf.b4 == 0);
ASSERT (sbf.b == -1);
#endif
+#endif
}
diff --git a/support/regression/tests/bitintfromfloat.c.in b/support/regression/tests/bitintfromfloat.c.in
index bf7ef9530..8ee774e3c 100644
--- a/support/regression/tests/bitintfromfloat.c.in
+++ b/support/regression/tests/bitintfromfloat.c.in
@@ -14,7 +14,7 @@
#define _BitInt _ExtInt
#endif
-#if __SDCC_BITINT_MAXWIDTH >= {width} && (32 >= {width} || !defined(__SDCC_pdk14)) // Lack of memory on pdk14 for wider types. Maybe some future optimization will help here.
+#if __SDCC_BITINT_MAXWIDTH >= {width} && !defined(__SDCC_pdk13) && (32 >= {width} || !defined(__SDCC_pdk14)) // Lack of memory on pdk14 for wider types. Maybe some future optimization will help here.
typedef {sign} _BitInt({width}) bitinttype;
bitinttype from_float(float f)
@@ -25,7 +25,7 @@ bitinttype from_float(float f)
void testCast (void)
{
-#if __SDCC_BITINT_MAXWIDTH >= {width} && (32 >= {width} || !defined(__SDCC_pdk14)) // Lack of memory on pdk14 for wider types. Maybe some future optimization will help here.
+#if __SDCC_BITINT_MAXWIDTH >= {width} && !defined(__SDCC_pdk13) && (32 >= {width} || !defined(__SDCC_pdk14)) // Lack of memory on pdk14 for wider types. Maybe some future optimization will help here.
float f;
f = 1;
diff --git a/support/regression/tests/bitintrot.c.in b/support/regression/tests/bitintrot.c.in
index e88d58c69..9651ff9a3 100644
--- a/support/regression/tests/bitintrot.c.in
+++ b/support/regression/tests/bitintrot.c.in
@@ -15,7 +15,7 @@
#define _BitInt _ExtInt
#endif
-#if __SDCC_BITINT_MAXWIDTH >= {width} && ({width} <= 8 || !defined(__SDCC_pdk14)) && ({width} <= 16 || !defined(__SDCC_pdk15)) // Lack of memory for pdk. TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
+#if __SDCC_BITINT_MAXWIDTH >= {width} && ({width} <= 8 || !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14)) && ({width} <= 16 || !defined(__SDCC_pdk15)) // Lack of memory for pdk. TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
typedef unsigned _BitInt({width}) bitinttype;
#define WIDTH {width}
#else
@@ -46,7 +46,7 @@ testRot (void)
ASSERT (NROL (t2) == NROL (TESTVECT2));
ASSERT (NROL2 (t1) == NROL2 (TESTVECT1));
ASSERT (NROL2 (t2) == NROL2 (TESTVECT2));
-
+#ifndef __SDCC_pdk13 // Lack of memory
t1 = ROL(t1);
t2 = ROL(t2);
ASSERT (t1 == ROL (TESTVECT1));
@@ -56,5 +56,6 @@ testRot (void)
t2 = ROR(t2);
ASSERT (t1 == TESTVECT1);
ASSERT (t2 == TESTVECT2);
+#endif
}
diff --git a/support/regression/tests/bitinttofloat.c.in b/support/regression/tests/bitinttofloat.c.in
index 1645c5b3f..3384a63e6 100644
--- a/support/regression/tests/bitinttofloat.c.in
+++ b/support/regression/tests/bitinttofloat.c.in
@@ -18,14 +18,17 @@
typedef {sign} _BitInt({width}) bitinttype;
+#ifndef __SDCC_pdk13 // Lack of memory; we are close, though - thiosmight work with more optimizations.
float to_float(bitinttype b)
{
return(b);
}
#endif
+#endif
void testCast (void)
{
+#ifndef __SDCC_pdk13 // Lack of memory
#if __SDCC_BITINT_MAXWIDTH >= {width} // TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
bitinttype b;
@@ -40,5 +43,6 @@ void testCast (void)
ASSERT (to_float (b) == (float)b);
#endif
#endif
+#endif
}
diff --git a/support/regression/tests/bitwise.c.in b/support/regression/tests/bitwise.c.in
index 411dad02f..c34bd82cd 100644
--- a/support/regression/tests/bitwise.c.in
+++ b/support/regression/tests/bitwise.c.in
@@ -19,7 +19,7 @@ testTwoOpBitwise(void)
ASSERT(({type})(left & 0xc1ec) == ({type})0x1E4);
ASSERT(({type})(0x3df7 & right) == ({type})0x1E4);
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
ASSERT(({type})(left | right) == ({type})0xFDFF);
ASSERT(({type})(right | left) == ({type})0xFDFF);
@@ -44,6 +44,7 @@ testTwoOpBitwise(void)
void
testAnd(void)
{
+#ifndef __SDCC_pdk13 // Lack of memory - with more optimization, a few more lines should be possible
char res;
{attr} int a;
@@ -184,6 +185,7 @@ testAnd(void)
* result: bit, left: var, right: literal
*/
#endif
+#endif
}
void
@@ -209,7 +211,7 @@ testOr(void)
else
res = 0;
ASSERT(res == 0);
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
if (a | 0x4321)
res = 1;
@@ -278,7 +280,7 @@ testXor(void)
else
res = 0;
ASSERT(res == 1);
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
if (!(a ^ 0x4321))
res = 1;
diff --git a/support/regression/tests/bool.c b/support/regression/tests/bool.c
index 862f9408f..1aa2bbbdb 100644
--- a/support/regression/tests/bool.c
+++ b/support/regression/tests/bool.c
@@ -82,7 +82,7 @@ testBool(void)
ASSERT((E ? 1 : 0) == (!(!E)));
ASSERT((E += 2) == 1);
ASSERT((--E, --E, E) == E);
-
+#if !defined (__SDCC_pdk13) // Lack of memory
E = 0; ASSERT(!E); // sets E to 0
E = 1; ASSERT(E); // sets E to 1
E = 4; ASSERT(E); // sets E to 1
@@ -101,5 +101,6 @@ testBool(void)
fieldassign();
ASSERT(s2.b1);
#endif
+#endif
}
diff --git a/support/regression/tests/bp.c b/support/regression/tests/bp.c
index 5ef54776f..9d946347d 100644
--- a/support/regression/tests/bp.c
+++ b/support/regression/tests/bp.c
@@ -20,7 +20,7 @@ spoil(int a)
return a;
}
-#if defined(__SDCC_pic14) || defined(__SDCC_pdk14)
+#if defined(__SDCC_pic14) || defined(__SDCC_pdk13) || defined(__SDCC_pdk14)
// test devices with much less memory
#define ABOVE_MEM_SIZE 20
diff --git a/support/regression/tests/bug1057979.c b/support/regression/tests/bug1057979.c
index b16383fbf..c11844f7e 100644
--- a/support/regression/tests/bug1057979.c
+++ b/support/regression/tests/bug1057979.c
@@ -12,7 +12,6 @@ char s[12 + 1];
void
test_sprintf (void)
{
-#if !defined( __SDCC_pdk14) && !defined(__SDCC_pdk15) && !defined(__SDCC_pic14) // Lack of memory
#ifndef __SDCC_pic16
s[12] = 0x12;
@@ -56,6 +55,5 @@ test_sprintf (void)
ASSERT (s[12] == 0x12);
#endif
-#endif
}
diff --git a/support/regression/tests/bug1115321.c b/support/regression/tests/bug1115321.c
index 7741caedc..c88493c0e 100644
--- a/support/regression/tests/bug1115321.c
+++ b/support/regression/tests/bug1115321.c
@@ -103,7 +103,6 @@
* as the buffer[end - 1] value.
*/
-#ifndef __SDCC_pdk14 // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
unsigned char SDCC_SNPRINTF( char *buffer, const unsigned char size,
const char *format, ... )
@@ -216,11 +215,9 @@ clean_and_bail:
return (buffer - start);
}
#endif
-#endif
void test_s( void )
{
-#ifndef __SDCC_pdk14 // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
char buffer[32];
int ret;
@@ -256,7 +253,6 @@ void test_s( void )
ASSERT (strcmp(buffer, "Hello, wo") == 0);
ASSERT (ret == 10);
#endif
-#endif
}
#if defined SDCC
diff --git a/support/regression/tests/bug1520966.c b/support/regression/tests/bug1520966.c
index e30de0435..0fdf17a4b 100644
--- a/support/regression/tests/bug1520966.c
+++ b/support/regression/tests/bug1520966.c
@@ -7,7 +7,6 @@
void
testFloatOp(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
volatile float a,b;
float result;
@@ -22,6 +21,5 @@ testFloatOp(void)
result = a / b;
ASSERT( result < a );
ASSERT( result >= 0.0 );
-#endif
}
diff --git a/support/regression/tests/bug1551947.c b/support/regression/tests/bug1551947.c
index cf80edc97..ea9e86657 100644
--- a/support/regression/tests/bug1551947.c
+++ b/support/regression/tests/bug1551947.c
@@ -10,9 +10,7 @@ __xdata float x = 1.0;
void
testBug (void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
z = x * x;
ASSERT (z == 1.0);
-#endif
}
diff --git a/support/regression/tests/float.c.in b/support/regression/tests/float.c.in
index 6a7cb6829..60da75609 100644
--- a/support/regression/tests/float.c.in
+++ b/support/regression/tests/float.c.in
@@ -32,7 +32,7 @@
# define XDATA
#endif
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
XDATA volatile float left, right, result;
struct {
@@ -93,7 +93,7 @@ compare (float is, float should)
void
testFloatMath (void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
int i;
int t = sizeof (cases) / sizeof (cases[0]);
float result;
@@ -139,7 +139,7 @@ testFloatMath (void)
void
testFloatMulRound (void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
right = 2.0 / 10.61;
result = 10.61 * right;
compare (result, 2.0);
diff --git a/support/regression/tests/float_single.c.in b/support/regression/tests/float_single.c.in
index a5b910b17..865296281 100644
--- a/support/regression/tests/float_single.c.in
+++ b/support/regression/tests/float_single.c.in
@@ -37,7 +37,7 @@ neg (float a) _FLOAT_FUNC_REENTRANT
typedef float (*float_test_func)(float) _FLOAT_FUNC_REENTRANT;
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
/* the table with functions, their argument, expected result, tolerance.
For most 8-bitters each testpoint uses 14 bytes so we could have a few:) */
@@ -188,7 +188,7 @@ static const testpoint[] =
void
testFloat (void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
unsigned char i;
float result, rel_error;
diff --git a/support/regression/tests/float_trans.c.in b/support/regression/tests/float_trans.c.in
index 3db5d257e..539ba097b 100644
--- a/support/regression/tests/float_trans.c.in
+++ b/support/regression/tests/float_trans.c.in
@@ -13,7 +13,7 @@
void
testTrans(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
#ifdef SQRTF
ASSERT(fabsf (sqrtf (5.0) - 2.23606801) < 0.00001);
#endif
diff --git a/support/regression/tests/frexpf.c b/support/regression/tests/frexpf.c
index d36a295fa..0ddc106ca 100644
--- a/support/regression/tests/frexpf.c
+++ b/support/regression/tests/frexpf.c
@@ -6,7 +6,6 @@
void testfrexpf(void)
{
-#if !defined(__SDCC_pdk14) // Lack of memory
int e;
int *p = &e;
@@ -15,6 +14,5 @@ void testfrexpf(void)
ASSERT (frexpf (0.75 * 4, p) == 0.75);
ASSERT (frexpf (0.75 * 16, p) == 0.75);
-#endif
}
diff --git a/support/regression/tests/iso646.c.in b/support/regression/tests/iso646.c.in
index b8e0fab57..e4e5d4577 100644
--- a/support/regression/tests/iso646.c.in
+++ b/support/regression/tests/iso646.c.in
@@ -12,7 +12,7 @@
static void
testTwoOpBitwise(void)
{
-#if !defined(__SDCC_pdk14) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
{storage} {attr} {type} left, right;
left = ({type})0x3df7;
diff --git a/support/regression/tests/itoa.c.in b/support/regression/tests/itoa.c.in
index 28ad22e60..01979cfd9 100644
--- a/support/regression/tests/itoa.c.in
+++ b/support/regression/tests/itoa.c.in
@@ -7,7 +7,7 @@
#include <stdlib.h>
#include <string.h>
-#if !defined(PORT_HOST) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(PORT_HOST) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
/* do not run tests for listed above platforms - out of memory */
#define TEST_{test} 1
diff --git a/support/regression/tests/libmullong.c.in b/support/regression/tests/libmullong.c.in
index 3afb231e9..232610ddd 100644
--- a/support/regression/tests/libmullong.c.in
+++ b/support/regression/tests/libmullong.c.in
@@ -6,7 +6,7 @@
#ifndef PORT_HOST // No longer works
-#if !defined(__SDCC_pdk14) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#define type_{type}
#if defined(PORT_HOST)
@@ -79,7 +79,7 @@ void
testlibmullong(void)
{
#ifndef PORT_HOST
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
ASSERT(mullong ( 0, 0) == 0);
ASSERT(mullong ( 0x100, 0x100) == 0x10000);
ASSERT(mullong (0x01020304, 3) == 0x0306090c);
@@ -120,3 +120,4 @@ testlibmullong(void)
#endif
#endif
}
+
diff --git a/support/regression/tests/logic.c.in b/support/regression/tests/logic.c.in
index e6b3aab37..33dbb8481 100644
--- a/support/regression/tests/logic.c.in
+++ b/support/regression/tests/logic.c.in
@@ -58,7 +58,7 @@ alwaysGetHere(void)
static void
testLogicalAnd(void)
{
-#if !defined(__SDCC_pdk14) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
{type} true = alwaysTrue();
{type} false = alwaysFalse();
@@ -92,7 +92,7 @@ testLogicalAnd(void)
static void
testLogicalOr(void)
{
-#if !defined(__SDCC_pdk14) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
{type} true = alwaysTrue();
{type} false = alwaysFalse();
@@ -137,3 +137,4 @@ testFlagToVariable(void)
val = !!false;
ASSERT(!false);
}
+
diff --git a/support/regression/tests/lonesha256.c b/support/regression/tests/lonesha256.c
index c7bec37bf..3285c3cff 100644
--- a/support/regression/tests/lonesha256.c
+++ b/support/regression/tests/lonesha256.c
@@ -9,7 +9,7 @@
#define LONESHA256_STATIC
-#if !(defined(__SDCC_mcs51) && (defined(__SDCC_MODEL_SMALL) || defined(__SDCC_MODEL_MEDIUM) || defined(__SDCC_STACK_AUTO))) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // Lack of memory
+#if !(defined(__SDCC_mcs51) && (defined(__SDCC_MODEL_SMALL) || defined(__SDCC_MODEL_MEDIUM) || defined(__SDCC_STACK_AUTO))) && !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // Lack of memory
/*
lonesha256.h - Portable, endian-proof, single-file, single-function sha256 implementation, originally based on LibTomCrypt
@@ -194,7 +194,7 @@ void
testSha (void)
{
#if !defined(__SDCC_ds390) // Fails for unknown reason
-#if !(defined(__SDCC_mcs51) && (defined(__SDCC_MODEL_SMALL) || defined(__SDCC_MODEL_MEDIUM) || defined(__SDCC_STACK_AUTO))) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // Lack of memory
+#if !(defined(__SDCC_mcs51) && (defined(__SDCC_MODEL_SMALL) || defined(__SDCC_MODEL_MEDIUM) || defined(__SDCC_STACK_AUTO))) && !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // Lack of memory
int i;
for (i = 0; i < sizeof(pairs)/sizeof(pairs[0]); i++) {
diff --git a/support/regression/tests/longlong.c.in b/support/regression/tests/longlong.c.in
index f0d1c6ff1..fa9f49d32 100644
--- a/support/regression/tests/longlong.c.in
+++ b/support/regression/tests/longlong.c.in
@@ -10,7 +10,7 @@
#define TEST_{test}
-#if !(defined(__SDCC_mcs51) && !defined(__SDCC_STACK_AUTO) && defined(__SDCC_MODEL_SMALL) ) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !(defined(__SDCC_mcs51) && !defined(__SDCC_STACK_AUTO) && defined(__SDCC_MODEL_SMALL) ) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
long long x;
unsigned long long y;
int i;
@@ -326,7 +326,7 @@ LongLong_shift (void)
void
testLongLong (void)
{
-#if !(defined(__SDCC_mcs51) && !defined(__SDCC_STACK_AUTO) && defined(__SDCC_MODEL_SMALL) ) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !(defined(__SDCC_mcs51) && !defined(__SDCC_STACK_AUTO) && defined(__SDCC_MODEL_SMALL) ) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
LongLong_{test}();
#endif
}
diff --git a/support/regression/tests/ltoa.c.in b/support/regression/tests/ltoa.c.in
index a611c58fe..eb26a5faa 100644
--- a/support/regression/tests/ltoa.c.in
+++ b/support/regression/tests/ltoa.c.in
@@ -7,7 +7,7 @@
#include <stdlib.h>
#include <string.h>
-#if !defined(PORT_HOST) && !(defined(__SDCC_mcs51) && !defined(__SDCC_STACK_AUTO) && defined(__SDCC_MODEL_SMALL) ) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(PORT_HOST) && !(defined(__SDCC_mcs51) && !defined(__SDCC_STACK_AUTO) && defined(__SDCC_MODEL_SMALL) ) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
/* do not run tests for listed above platforms - out of memory */
#define TEST_{test} 1
#define LTOA(num,base,res) check_l(num, base, res)
diff --git a/support/regression/tests/muldiv.c.in b/support/regression/tests/muldiv.c.in
index bd7dd71c9..d5e5dcbaa 100644
--- a/support/regression/tests/muldiv.c.in
+++ b/support/regression/tests/muldiv.c.in
@@ -9,7 +9,7 @@
void
testUnsignedModDiv(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
{attr} {storage} unsigned {type} i;
unsigned {type} result;
@@ -34,7 +34,7 @@ testUnsignedModDiv(void)
void
testUnsignedMul(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
{attr} {storage} unsigned {type} i;
unsigned {type} result;
@@ -52,7 +52,7 @@ testUnsignedMul(void)
void
testMul(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
{attr} {storage} signed {type} i;
signed {type} result;
@@ -82,7 +82,7 @@ void mark(void)
void
testDiv(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
{attr} {storage} signed {type} i;
i = 100;
@@ -105,7 +105,7 @@ testDiv(void)
void
test16to32(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
{attr} {storage} int i, j;
{attr} {storage} unsigned int ui, uj;
@@ -146,7 +146,7 @@ test16to32(void)
void
testMod(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
{attr} {storage} signed {type} i;
// Disabled the LOG functions due to a bug in sdcc involving
diff --git a/support/regression/tests/reentrant.c.in b/support/regression/tests/reentrant.c.in
index 9637eaddd..16fcf1ca4 100644
--- a/support/regression/tests/reentrant.c.in
+++ b/support/regression/tests/reentrant.c.in
@@ -6,7 +6,7 @@
#include <testfwk.h>
#include <stdlib.h>
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if !defined( __SDCC_ds390) // Bug 3307
{type} sum({type} a) __reentrant
@@ -39,7 +39,7 @@
void
testReent(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if !defined( __SDCC_ds390) // Bug 3307
ASSERT(sum(9) == 45);
ASSERT(fact(5) == 120);
diff --git a/support/regression/tests/rotate.c.in b/support/regression/tests/rotate.c.in
index 0a3954040..8aec83ad2 100644
--- a/support/regression/tests/rotate.c.in
+++ b/support/regression/tests/rotate.c.in
@@ -9,7 +9,7 @@
#include <stdint.h>
#endif
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
#define SIZE ({size})
@@ -87,7 +87,7 @@ TYPE rol31(TYPE s){ return (s<<31) | (s>>(SIZE-31)); }
void
testRol(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
volatile TYPE t = TEST_VECT;
TYPE u;
@@ -125,3 +125,4 @@ testRol(void)
#endif
#endif
}
+
diff --git a/support/regression/tests/rotate2.c.in b/support/regression/tests/rotate2.c.in
index 33084ffe0..0223a15f7 100644
--- a/support/regression/tests/rotate2.c.in
+++ b/support/regression/tests/rotate2.c.in
@@ -122,7 +122,7 @@ TYPE rotate_test_1_xor2(TYPE value)
return (((value ^ rotate_test_value_xor) << SHIFT_L) | ((value ^ rotate_test_value_xor) >> SHIFT_R)) AND_OPERATION;
}
-#if !(defined(__SDCC_pdk14) || defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of memory
+#if !(defined(__SDCC_pdk13) || defined(__SDCC_pdk14) || defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of memory
TYPE rotate_test_2(TYPE value)
{
@@ -217,7 +217,7 @@ TYPE rotate_test_5_xor2(TYPE value)
static void
testSwaps(void)
{
-#if !(defined(__SDCC_pdk14) || defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of memory
+#if !(defined(__SDCC_pdk13) || defined(__SDCC_pdk14) || defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of memory
volatile TYPE t = TEST_VALUE;
TYPE u;
diff --git a/support/regression/tests/sha3-256.c b/support/regression/tests/sha3-256.c
index 5698835b5..dcc6e3175 100644
--- a/support/regression/tests/sha3-256.c
+++ b/support/regression/tests/sha3-256.c
@@ -12,7 +12,7 @@
#if !defined(__SDCC_mos6502) && !defined(__SDCC_mos65c02) // mos6052/mos65c02 can't return struct this large yet.
#if !defined(__SDCC_hc08) && !defined(__SDCC_s08) && !defined(__SDCC_ds390) // hc08/s08/ds390 can't return struct yet.
-#if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // Lack of memory
+#if !defined(__SDCC_mcs51) && !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // Lack of memory
#define SHA3_256_MD_LEN 32 // 256-bit digest length in bytes.
#define SHA3_256_ROUNDS 24 // KECCAK rounds to perform for SHA3-256.
@@ -213,7 +213,7 @@ testSha (void)
#if __STDC_ENDIAN_NATIVE__ // The implementation assumes little-endian
#if !defined(__SDCC_mos6502) && !defined(__SDCC_mos65c02) // mos6502/mos65c02 can't return struct this large yet
#if !defined(__SDCC_ds390) // ds390 can't return struct yet.
-#if !__SDCC_mcs51 && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_mcs51) // Lack of memory
int i;
for (i = 0; i < sizeof(pairs)/sizeof(pairs[0]); i++) {
diff --git a/support/regression/tests/shifts.c.in b/support/regression/tests/shifts.c.in
index 15cfefa9c..4f8250b68 100644
--- a/support/regression/tests/shifts.c.in
+++ b/support/regression/tests/shifts.c.in
@@ -35,7 +35,7 @@ test1ShiftClasses(void)
void
test2ShiftRight(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
{attr} {storage} signed {type} i, result;
@@ -58,6 +58,7 @@ test2ShiftRight(void)
void
test3ShiftByteMultiples(void)
{
+#if !defined(__SDCC_pdk13) // Lack of memory; we are close, though, sowith a bit more optimization, this might work.
{attr} {storage} {type} i;
i = ({type}){vals};
@@ -69,12 +70,13 @@ test3ShiftByteMultiples(void)
ASSERT( ({type})(i<<8) == ({type})({vals} << 8));;
ASSERT((({type}) i<<16) == (({type}) {vals} << 16));
ASSERT((({type}) i<<24) == (({type}) {vals} << 24));
+#endif
}
void
test4ShiftOne(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
{attr} {storage} {sign} {type} i;
{sign} {type} result;
@@ -98,7 +100,7 @@ test4ShiftOne(void)
#endif
}
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
static {type} ShiftLeftByParam ({type} count)
{
@@ -119,7 +121,7 @@ static {type} ShiftRightByParam ({type} count)
void
testShiftByParam(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
ASSERT(ShiftLeftByParam(2) == ({type})({vals} << 2));
ASSERT(ShiftRightByParam(2) == ({type})({vals} >> 2));
diff --git a/support/regression/tests/shifts2.c.in b/support/regression/tests/shifts2.c.in
index ca1a3cecb..18322f0d9 100644
--- a/support/regression/tests/shifts2.c.in
+++ b/support/regression/tests/shifts2.c.in
@@ -63,7 +63,7 @@
static void
testShift(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
TESTSHIFT(0);
TESTSHIFT(1);
diff --git a/support/regression/tests/shifts3.c.in b/support/regression/tests/shifts3.c.in
index a595098bb..7ab31c7f9 100644
--- a/support/regression/tests/shifts3.c.in
+++ b/support/regression/tests/shifts3.c.in
@@ -7,6 +7,7 @@
*/
#include <testfwk.h>
+#if !defined(__SDCC_pdk13) // Lack of memory
const int C0[] = {0,1,2};
int S0[] = {5,0,1};
@@ -138,9 +139,11 @@ int r3(void)
}
#endif
#endif
+#endif
void testShift(void)
{
+#if !defined(__SDCC_pdk13)
ASSERT (r0() == 0);
#if !defined(__SDCC_pdk14)
ASSERT (r1() == 2);
@@ -149,5 +152,6 @@ void testShift(void)
ASSERT (r3() == -2);
#endif
#endif
+#endif
}
diff --git a/support/regression/tests/sizeof.c.in b/support/regression/tests/sizeof.c.in
index f8da78772..59902df09 100644
--- a/support/regression/tests/sizeof.c.in
+++ b/support/regression/tests/sizeof.c.in
@@ -181,6 +181,8 @@ testSizeof(void)
TEST_OP_NOPROMO ((TEST_VAR_OTHER++, TEST_VAR += 1));
#endif
+#ifndef __SDCC_pdk13 // Lack of memory
+
#ifdef TEST_POINTERS
TEST_OP_CHAR_PTR(VAR_TYPE *);
@@ -381,6 +383,8 @@ testSizeof(void)
TEST_OP (0 || c);
#endif
+#endif // Lack of pdk13 memory
+
#endif //DUMMY_TEST
}
diff --git a/support/regression/tests/snprintf.c.in b/support/regression/tests/snprintf.c.in
index 70dde1f04..623455255 100644
--- a/support/regression/tests/snprintf.c.in
+++ b/support/regression/tests/snprintf.c.in
@@ -167,7 +167,7 @@ struct
void
test_snprintf (void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
+#if !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
#ifndef __SDCC_pic16
unsigned char buf[32];
unsigned char i;
diff --git a/support/regression/tests/stack-restore.c.in b/support/regression/tests/stack-restore.c.in
index 5389b02e8..d0084c59e 100644
--- a/support/regression/tests/stack-restore.c.in
+++ b/support/regression/tests/stack-restore.c.in
@@ -39,7 +39,7 @@ stack_restore_test_byte(const char s)
return 0;
}
-#if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !defined(__SDCC_pic14) // Lack of memory
+#if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !defined(__SDCC_pic14) // Lack of memory
#if !( (defined (__SDCC_mos6502) || defined(__SDCC_mos65c02 )) && defined(__SDCC_STACK_AUTO) ) // stack too msall
// Test for size = 2 bytes
// Big stack needed (>256 bytes)
diff --git a/support/regression/tests/stacks.c.in b/support/regression/tests/stacks.c.in
index 3d15a7693..b215e9cb1 100644
--- a/support/regression/tests/stacks.c.in
+++ b/support/regression/tests/stacks.c.in
@@ -21,7 +21,7 @@ testStack(void)
volatile char above;
volatile char above2;
/* pic14: Bank size limit */
-#if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk14) && !defined(__SDCC_pic14)
+#if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pic14)
volatile char ac[{size}];
#else
volatile char ac[{size} - 100];
diff --git a/support/regression/tests/structparam.c.in b/support/regression/tests/structparam.c.in
index ddc997a5f..2e1ddad73 100644
--- a/support/regression/tests/structparam.c.in
+++ b/support/regression/tests/structparam.c.in
@@ -19,7 +19,7 @@ struct s
}
// Caller
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) // Lack of memory
{type} g({type} i, {type} j)
{
struct s s = {i, j};
@@ -29,7 +29,7 @@ struct s
void testParam (void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) // Lack of memory
ASSERT (g(23, 42) == 23 + 42);
#endif
}
diff --git a/support/regression/tests/structreturn.c.in b/support/regression/tests/structreturn.c.in
index dc153be5f..34354e79f 100644
--- a/support/regression/tests/structreturn.c.in
+++ b/support/regression/tests/structreturn.c.in
@@ -6,7 +6,7 @@
#include <testfwk.h>
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) // Lack of memory
#if !defined(__SDCC_ds390) && !defined(__SDCC_ds390) && !defined(__SDCC_hc08) && !defined(__SDCC_s08) && !defined(__SDCC_mos6502) && !defined(__SDCC_mos65c02) // struct return not yet supported
struct s
{
@@ -64,7 +64,7 @@ int h2(void)
void testRet (void)
{
#if !defined(__SDCC_ds390) && !defined(__SDCC_ds390) && !defined(__SDCC_hc08) && !defined(__SDCC_s08) && !defined(__SDCC_mos6502) && !defined(__SDCC_mos65c02) // struct return not yet supported
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) // Lack of memory
ASSERT (g1() == 3);
ASSERT (g2() == 3);
ASSERT (h1() == 2);
diff --git a/support/regression/tests/switch.c.in b/support/regression/tests/switch.c.in
index d1260e5f8..71233689b 100644
--- a/support/regression/tests/switch.c.in
+++ b/support/regression/tests/switch.c.in
@@ -48,7 +48,7 @@ testSparseSwitch(void)
ASSERT(sparseSwitch(6) == 14);
ASSERT(sparseSwitch(12) == 14);
ASSERT(sparseSwitch(13) == 19);
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory - we are close though; with a bitmore optimization, this might work, even for pdk13.
ASSERT(sparseSwitch(14) == 19);
ASSERT(sparseSwitch(15) == 19);
ASSERT(sparseSwitch(19) == 30);
@@ -56,7 +56,7 @@ testSparseSwitch(void)
#endif
}
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
{sign} {type}
denseSwitch({sign} {type} val)
{
@@ -92,7 +92,7 @@ denseSwitch({sign} {type} val)
void
testDenseSwitch(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
ASSERT(denseSwitch(0) == 1);
ASSERT(denseSwitch(1) == 14);
ASSERT(denseSwitch(2) == 15);
@@ -106,7 +106,7 @@ testDenseSwitch(void)
void
testDenseIntSwitch(void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
volatile int val = 1000;
volatile int ret = 0;
@@ -154,3 +154,4 @@ testDenseIntSwitch(void)
#endif
#endif
}
+
diff --git a/support/regression/tests/vaargs.c.in b/support/regression/tests/vaargs.c.in
index 5f8004ec4..73553b114 100644
--- a/support/regression/tests/vaargs.c.in
+++ b/support/regression/tests/vaargs.c.in
@@ -47,7 +47,7 @@ returnSecondArg(int marker, ...)
return i;
}
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) // Lack of memory
static {type2}
returnSecondArgCopy(int marker, ...)
{
@@ -94,7 +94,7 @@ testArgs(void)
LOG(("First arg: %u\n", returnFirstArg(marker, ({type1})123, ({type2})45, ({type3})67)));
ASSERT(returnFirstArg(marker, ({type1})123, ({type2})45, ({type3})67) == ({type1})123);
ASSERT(returnFirstArg(marker, ({type1})-123, ({type2})45, ({type3})67) == ({type1})-123);
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) // Lack of memory
ASSERT(returnSecondArg(marker, ({type1})1, ({type2})-23, ({type3})64) == ({type2})-23);
ASSERT(returnSecondArg(marker, ({type1})1, ({type2})8, ({type3})64) == ({type2})8);
diff --git a/support/regression/tests/wchar.c.in b/support/regression/tests/wchar.c.in
index 6145737d7..5e6c385b7 100644
--- a/support/regression/tests/wchar.c.in
+++ b/support/regression/tests/wchar.c.in
@@ -38,7 +38,7 @@ _Static_assert(WEOF <= WINT_MAX, "WEOF out of wint_t range");
static void
wcharnorestart(void)
{
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L && !defined(__SDCC_pdk14) // Not enough memory
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) // Not enough memory
#if !(defined (__SDCC_pdk15) && defined(__SDCC_STACK_AUTO)) // Lack of code memory
wchar_t w;
char c[MB_LEN_MAX];
@@ -67,7 +67,7 @@ wcharnorestart(void)
static void
wcharstringnorestart(void)
{
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Not enough memory
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L && !defined(__SDCC_pdk13) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Not enough memory
wchar_t wcs1[5] = L"Test";
wchar_t wcs2[5];
char mbs[5 * MB_LEN_MAX];
@@ -106,7 +106,7 @@ wcharstringnorestart(void)
static void
wcharrestart(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
static mbstate_t ps;
wchar_t w;
@@ -134,7 +134,7 @@ wcharrestart(void)
static void
char16restart(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !(defined(__SDCC_mcs51) && defined(__SDCC_MODEL_SMALL))
#if !defined(__APPLE__) && !defined(__OpenBSD__) // As of 2023, macOS and OpenBSD are still not fully C11-compliant: they lack uchar.h.
#if !defined(__FreeBSD__) || __FreeBSD_version >= 1302000 // Known FreeBSD 13.2 bug #272758.
@@ -179,7 +179,7 @@ char16restart(void)
static void
char32restart(void)
{
-#if !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
+#if !defined( __SDCC_pdk13) && !defined( __SDCC_pdk14) && !defined( __SDCC_pdk15) // Lack of memory
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#if !defined(__APPLE__) && !defined(__OpenBSD__) // As of 2023, macOS and OpenBSD are still not fully C11-compliant: they lack uchar.h.
#if !defined(__FreeBSD__) || __FreeBSD_version >= 1302000 // Known FreeBSD 13.2 bug #272758.
@@ -206,3 +206,4 @@ testwchar(void)
{
{test}();
}
+
diff --git a/support/regression/tests/wcsnlen.c b/support/regression/tests/wcsnlen.c
index 062fb6c1b..5885d7a13 100644
--- a/support/regression/tests/wcsnlen.c
+++ b/support/regression/tests/wcsnlen.c
@@ -14,7 +14,6 @@ void
testStr(void)
{
#if defined(__SDCC) || (_POSIX_C_SOURCE >= 200809L) || (__STDC_VERSION_STRING_H__ > 202311L) // wcsnlen is a C2Y function previously vailable in POSIX.
-#ifndef __SDCC_pdk14 // lack of RAM
const wchar_t hello4[] = L"hello4";
const wchar_t hello5[7];
@@ -50,6 +49,5 @@ testStr(void)
ASSERT(wcsnlen(hello5, 7) == 6);
#endif
#endif
-#endif
}
diff --git a/support/regression/tests/wcsto.c b/support/regression/tests/wcsto.c
index c180db189..dc1bbc5cc 100644
--- a/support/regression/tests/wcsto.c
+++ b/support/regression/tests/wcsto.c
@@ -8,7 +8,7 @@
#include <errno.h>
#include <wchar.h>
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !defined(__SDCC_mcs51) // Lack of memory
+#if !defined(__SDCC_mcs51) // Lack of memory
wchar_t string0[] = L"-2";
wchar_t string1[] = L"-9999999999999999999999";
wchar_t string2[] = L"9999999999999999999999";
@@ -21,7 +21,7 @@ wchar_t string6[] = L"-0x23test";
void
testWcsto(void)
{
-#if !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) && !defined(__SDCC_mcs51) // Lack of memory
+#if !defined(__SDCC_mcs51) // Lack of memory
wchar_t *e;
ASSERT(wcstoul(L"", 0, 10) == 0);
diff --git a/support/regression/tests/widebitintbitfield.c.in b/support/regression/tests/widebitintbitfield.c.in
index a39e8450a..62211c85d 100644
--- a/support/regression/tests/widebitintbitfield.c.in
+++ b/support/regression/tests/widebitintbitfield.c.in
@@ -14,7 +14,7 @@
#define _BitInt _ExtInt
#endif
-#if __SDCC_BITINT_MAXWIDTH >= {width} // TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
+#if __SDCC_BITINT_MAXWIDTH >= {width} && ({width} <= 40 || !defined(__SDCC_pdk13)) // Lack of memory for pdk13. TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
typedef {sign} _BitInt({width}) bitinttype;
struct {
@@ -32,7 +32,7 @@ struct {
void testWideBitIntBitField(void)
{
-#if __SDCC_BITINT_MAXWIDTH >= {width} // TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
+#if __SDCC_BITINT_MAXWIDTH >= {width} && ({width} <= 40 || !defined(__SDCC_pdk13)) // Lack of memory for pdk13. TODO: When we can regression-test in --std-c23 mode, use the standard macro from limits.h instead!
#ifndef __clang_major__ // clang 11 doesn't support == between _BitInt and int, and does weird stuff when promoting bit-fields.
ASSERT (_Generic(+bf2.bw, bitinttype: 1, default: 0) == 1);
ASSERT (_Generic(+bf2.bw_1, bitinttype: 1, default: 0) == 1);
diff --git a/support/regression/tests/zeropad.c.in b/support/regression/tests/zeropad.c.in
index 158acbf6e..d6eed1313 100644
--- a/support/regression/tests/zeropad.c.in
+++ b/support/regression/tests/zeropad.c.in
@@ -23,7 +23,7 @@
#include <testfwk.h>
#include <stddef.h>
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
#if defined (STORAGE_auto)
void Zeropad(void)
@@ -147,7 +147,7 @@ Zeropad (void)
void
testZeropad (void)
{
-#ifndef __SDCC_pdk14 // Lack of memory
+#if !defined (__SDCC_pdk13) && !defined (__SDCC_pdk14) // Lack of memory
Zeropad ();
#if defined (STORAGE_auto)