From 4da308d56d515a62525656b2a5130e7c508084f7 Mon Sep 17 00:00:00 2001 From: michaelh Date: Mon, 15 Oct 2001 05:50:48 +0000 Subject: [PATCH] Added tests git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1401 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- support/regression/tests/packcast.c | 25 +++++++++++++++++++++ support/regression/tests/stacks.c | 33 ++++++++++++++++++++++++++++ support/regression/tests/structidx.c | 32 +++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 support/regression/tests/packcast.c create mode 100644 support/regression/tests/stacks.c create mode 100644 support/regression/tests/structidx.c diff --git a/support/regression/tests/packcast.c b/support/regression/tests/packcast.c new file mode 100644 index 00000000..f44542d2 --- /dev/null +++ b/support/regression/tests/packcast.c @@ -0,0 +1,25 @@ +/* Tests that a cast used as a parameter gets packed into + HL +*/ +#include + +void +spoil(int a) +{ + UNUSED(a); +} + +void +testCastPack(char x) +{ + int i, j; + volatile char a = x; + + for (i = 0; i < 5; i++) + { + for (j = 0; j < 5; j++) + { + spoil(a); + } + } +} diff --git a/support/regression/tests/stacks.c b/support/regression/tests/stacks.c new file mode 100644 index 00000000..59b0d1c1 --- /dev/null +++ b/support/regression/tests/stacks.c @@ -0,0 +1,33 @@ +/* + size: 126, 127, 128, 129 + */ +#include + +void +spoil(char a) +{ + UNUSED(a); +} + +void +spoilPtr(char *p) +{ + UNUSED(p); +} + +void +testStack(void) +{ + volatile char above; + volatile char above2; + volatile char ac[{size}]; + volatile char below; + volatile char * volatile p; + + spoil(ac[0]); + spoilPtr(&above); + spoilPtr(&below); + + p = &above2; + spoilPtr(p); +} diff --git a/support/regression/tests/structidx.c b/support/regression/tests/structidx.c new file mode 100644 index 00000000..9bfca09e --- /dev/null +++ b/support/regression/tests/structidx.c @@ -0,0 +1,32 @@ +/* Code to generate code to see how structure indexs are evaluated. + Originally part of gbdk/examples/gb/paint.c + + */ +#include + +typedef unsigned char UBYTE; + +typedef struct cursor_info_ +{ + UBYTE data_idx; + UBYTE w, h; + UBYTE hot_x, hot_y; +} cursor_info; + +const cursor_info cursors[] = +{ + { 0, 1, 1, 0, 0 }, + { 1, 2, 2, 0, 15 }, + { 5, 2, 2, 0, 15 }, + { 9, 2, 2, 2, 15 }, + { 13, 2, 2, 0, 15 }, + { 17, 2, 2, 5, 10 } +}; + +UBYTE current_cursor; + +UBYTE +getWidth(void) +{ + return cursors[current_cursor].w; +} -- 2.30.2