File: call1.c

package info (click to toggle)
cc65 2.19-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 20,268 kB
  • sloc: ansic: 117,151; asm: 66,339; pascal: 4,248; makefile: 1,009; perl: 607
file content (157 lines) | stat: -rw-r--r-- 1,856 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/*
  !!DESCRIPTION!!
  !!ORIGIN!!      SDCC regression tests
  !!LICENCE!!     GPL, read COPYING.GPL
*/

#include <stdio.h>
#include <limits.h>

unsigned char success = 0;
unsigned char failures = 0;
unsigned char dummy = 0;

#ifdef SUPPORT_BIT_TYPES
bit bit0 = 0;
#endif
unsigned int uint0 = 0;
unsigned int uint1 = 0;
unsigned char uchar0 = 0;
unsigned char uchar1 = 0;

unsigned char call3 (void);

void
done ()
{
  dummy++;
}

void
call1 (unsigned char uc0)
{
  if (uc0)
    failures++;
}

void
call2 (unsigned int ui0)
{
  if (ui0)
    failures++;
}

unsigned char
call3 (void)
{
  if (uchar0)
    failures++;

  return (failures);
}

unsigned int
call4 (void)
{
  unsigned int i = 0;

  if (uint0)
    i++;

  return (i);
}

unsigned int
call5 (unsigned int k)
{
  if (k)
    failures++;

  return (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 call9(unsigned int ui1, unsigned int ui2)
{
  if(ui1 != 0x1234)
    failures++;
  if(ui2 != 0x5678)
    failures++;
}

int
main (void)
{
  call1 (uchar0);
  call2 (uint0);
  uchar1 = call3 ();
  uint1 = call4 ();
  if (uint1)
    failures++;

  uint1 = call5 (uint0);
  if (uint1)
    failures++;

  if(call6(uchar0))
    failures++;

  if(call7(0))
    failures++;

  if(!call7(1))
    failures++;

  if(!call7(0xff00))
    failures++;

  uchar0=4;
  uchar1=3;
  uchar0 = call8(uchar0,uchar1);

  if(uchar0 != 7)
    failures++;

  call9(0x1234,0x5678);

  success = failures;
  done ();
  printf("failures: %d\n",failures);

  return failures;
}