- Parameter passing now works
[fw/sdcc] / src / regression / call1.c
index b86285c000ba661284e98fddc954b1e510a9e0b0..fe35b81dd3641c31fdc5df35102511a10de7070b 100644 (file)
@@ -5,10 +5,10 @@ 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;
+unsigned int uint0 = 0;
+unsigned int uint1 = 0;
+unsigned char uchar0 = 0;
+unsigned char uchar1 = 0;
 
 unsigned char call3 (void);
 
@@ -38,7 +38,7 @@ call2 (unsigned int ui0)
 unsigned char
 call3 (void)
 {
-  if (achar0)
+  if (uchar0)
     failures++;
 
   return (failures);
@@ -50,7 +50,7 @@ call4 (void)
 {
   unsigned int i = 0;
 
-  if (aint0)
+  if (uint0)
     i++;
 
   return (i);
@@ -68,19 +68,81 @@ call5 (unsigned int k)
 
 }
 
+unsigned char 
+call6a(unsigned char uc)
+{
+
+  if(uc>uchar1)
+    return 1;
+  else
+    return 0;
+
+}
+
+unsigned char
+call6(unsigned char uc)
+{
+
+  return(call6a(uc));
+}
+
+unsigned int 
+call7a(unsigned int ui)
+{
+  if(ui)
+    return 1;
+  else
+    return 0;
+
+}
+
+unsigned int
+call7(unsigned int ui)
+{
+
+  return(call7a(ui));
+}
+
+unsigned char
+call8(unsigned char uc1,unsigned char uc2)
+{
+
+  return uc1+uc2;
+}
+
 void
 main (void)
 {
 
-  call1 (achar0);
-  call2 (aint0);
-  achar1 = call3 ();
-  aint1 = call4 ();
-  if (aint1)
+  call1 (uchar0);
+  call2 (uint0);
+  uchar1 = call3 ();
+  uint1 = call4 ();
+  if (uint1)
+    failures++;
+
+  uint1 = call5 (uint0);
+  if (uint1)
+    failures++;
+
+  if(call6(uchar0))
     failures++;
 
-  aint1 = call5 (aint0);
-  if (aint1)
+
+  if(call7(0))
+    failures++;
+
+  if(!call7(1))
+    failures++;
+
+  if(!call7(0xff00))
+    failures++;
+
+  uchar0=4;
+  uchar1=3;
+  uchar0 = call8(uchar0,uchar1);
+
+  if(uchar0 != 7)
     failures++;
 
   success = failures;