Applied patch #2762516
[fw/sdcc] / src / regression / compare3.c
index ce91b6b9126e700a203623e5cf61e2f8971a63d9..480eceb0e394956d4b47fbee54cc0268a5d22477 100644 (file)
@@ -1,25 +1,22 @@
+#include "gpsim_assert.h"
 //
 // compare3.c
 // regression testing program for comparing literals to variables
 //
 
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
-bit bit0 = 0;
 unsigned int aint0 = 0;
 unsigned int aint1 = 0;
 unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // compare to 0
@@ -185,9 +182,34 @@ void c_abcd(void)
   if(aint0 == 0x00cd)
     failures++;
 
-  if(aint0 == 0x1234abcd)
+  if(aint0 == 0x05cd)
+    failures++;
+
+  if(aint0 == 0xab05)
+    failures++;
+
+  if(aint0 == 0xab01)
+    failures++;
+
+  if(aint0 == 0x01cd)
     failures++;
 
+  //  if(aint0 == 0x1234abcd)
+    //    failures++;
+
+}
+
+// assumes achar1 == 0
+void c_ifelse1(void)
+{
+
+  if(achar0)
+    achar0 = achar1;
+  else
+    achar0 = 0;
+
+  if(achar0)
+    failures++;
 }
 
 void
@@ -214,6 +236,12 @@ main (void)
   aint0 = 0xabcd;
   c_abcd();
 
-  success = failures;
+  achar0 = 0;
+  achar1 = 0;
+  c_ifelse1();
+
+  achar0 = 1;
+  c_ifelse1();
+
   done ();
 }