-//#include "p16c84.h"
+#include "gpsim_assert.h"
// Addition tests
/* bit types are not ANSI - so provide a way of disabling bit types
* if this file is used to test other compilers besides SDCC */
-#define SUPPORT_BIT_TYPES 1
+#define SUPPORT_BIT_TYPES 0
/* Some compilers that support bit types do not support bit arithmetic
* (like bitx = bity + bitz;) */
#define SUPPORT_BIT_ARITHMETIC 1
-unsigned char success=0;
-unsigned char failures=0;
-unsigned char dummy=0;
+unsigned char failures = 0;
#if SUPPORT_BIT_TYPES
unsigned char achar1 = 0;
unsigned char *acharP = 0;
-struct chars {
- unsigned char c0,c1;
-};
+struct chars
+ {
+ unsigned char c0, c1;
+ unsigned int i0, i1;
+ };
-struct chars char_struct;
+struct chars struct1;
-void done()
+void
+done()
{
-
- dummy++;
-
+ ASSERT(MANGLE(failures) == 0);
+ PASSED();
}
-void struct_test(void)
+void
+struct_test (void)
{
- if(char_struct.c0 || char_struct.c1)
+ if (struct1.c0 || struct1.c1)
failures++;
- char_struct.c0++;
+ struct1.c0++;
- if(char_struct.c0 != 1)
+ if (struct1.c0 != 1)
failures++;
}
-
-void ptr_to_struct(struct chars *p)
+/*
+void
+ptr_to_struct (struct chars *p)
{
- if(p->c1)
+ if (p->c1)
failures++;
p->c1++;
- if(p->c1 != 1)
+ if (p->c1 != 1)
failures++;
}
+*/
+void add_chars(void)
+{
+ achar0 = struct1.c0 + struct1.c1;
-void main(void)
+ if(achar0 != 1)
+ failures++;
+}
+
+void
+main (void)
{
- char_struct.c0 = 0;
- char_struct.c1 = 0;
- struct_test();
- ptr_to_struct(&char_struct);
+ struct1.c0 = 0;
+ struct1.c1 = 0;
+ struct_test ();
+ // ptr_to_struct (&struct1);
+
+ struct1.c0 = 0;
+ struct1.c1 = 1;
+ add_chars();
- success = failures;
- done();
+ done ();
}