Applied patch #2762516
[fw/sdcc] / src / regression / b.c
index 4bd3077e1a18b89fa634b14c8bcf24bcc49fe31a..dd45f6cc61e3fc3b5aa825f54f108921a41ca00f 100644 (file)
@@ -1,39 +1,64 @@
+#include "gpsim_assert.h"
 
-unsigned char success = 0;
+unsigned char failures = 0;
 
-unsigned char uchar0 = 0;
-unsigned char uchar1 = 0;
-unsigned char uchar2 = 0;
+unsigned char uchar0=0;
+unsigned char uchar1=0;
+unsigned char uchar2=0;
 
 
 void
-done (void)
+done()
 {
-  success++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-void
-incptr (unsigned char *ucP)
+/*
+void incptr(unsigned char *ucP)
 {
   *ucP = *ucP + 1;
 }
+*/
 
-void
-inc (unsigned char k)
+void inc(unsigned char k)
 {
   uchar0 = uchar0 + k;
-  uchar1 = uchar1 + uchar0;
-  uchar2 = uchar1 + k;
 }
 
-void
-main (void)
+void f1(void)
+{
+
+  uchar2++;
+}
+
+void nested_call(unsigned char u)
 {
 
-  uchar0 = 1;
+  f1();
+  uchar1 = uchar1 + u;
+  inc(uchar1);
+
+}
+  //  uchar1 = uchar1 + uchar0;
+  //  uchar2 = uchar1 + k;
+
+void main(void)
+{
+
+  uchar0=1;
   //incptr(&uchar0);
-  inc (uchar0);
-  if (uchar0 != 2)
-    success++;
-  done ();
+  inc(uchar0);
+  if(uchar0 !=2)
+    failures++;
+
+  uchar0 = 2;
+  uchar1 = 1;
+  uchar2 = 1;
+  nested_call(uchar2);
+
+  if(uchar0 !=4)
+    failures++;
+
+  done();
 }