void call0(void)
{
- uchar0++;
+ uchar0++;
}
void call1(void)
{
- uchar1++;
+ uchar1++;
}
unsigned char call2(void)
{
- return uchar0 + 9;
+ return uchar0 + 9;
}
void docall0(void)
{
- pfunc = call0;
- (pfunc)();
- if(uchar0 != 1)
- failures++;
+ pfunc = call0;
+ (pfunc)();
+ if(uchar0 != 1)
+ failures++;
}
void docall1()
{
- unsigned char i;
- for(i = 0; i < 3; i++) {
- (*p1func)();
- }
+ unsigned char i;
+ for(i = 0; i < 3; i++) {
+ (*p1func)();
+ }
}
#ifdef NO_IMPLICIT_FUNCPTR_CONV
void docall2( void(*pf)() )
#endif
{
- unsigned char i;
- for(i = 0; i < 2; i++) {
- pf();
- }
+ unsigned char i;
+ for(i = 0; i < 2; i++) {
+ pf();
+ }
}
int main(void)
{
docall0();
- p1func = call1;
- docall1();
- if(uchar1 != 3)
- failures++;
- if(uchar0 != 1)
- failures++;
-
- p1func = call0;
- docall1();
- if(uchar1 != 3)
- failures++;
- if(uchar0 != 4)
- failures++;
-
- docall2(call0);
- if(uchar1 != 3)
- failures++;
- if(uchar0 != 6)
- failures++;
-
- docall2(call1);
- if(uchar1 != 5)
- failures++;
- if(uchar0 != 6)
- failures++;
-
- pcfunc = call2;
- uchar2 = (*pcfunc)();
- if(uchar2 != 15)
- failures++;
-
- uchar2 += (pcfunc)();
- uchar2 += pcfunc();
-
- success = failures;
- done();
- printf("failures: %d\n",failures);
-
- return failures;
+ p1func = call1;
+ docall1();
+ if(uchar1 != 3)
+ failures++;
+ if(uchar0 != 1)
+ failures++;
+
+ p1func = call0;
+ docall1();
+ if(uchar1 != 3)
+ failures++;
+ if(uchar0 != 4)
+ failures++;
+
+ docall2(call0);
+ if(uchar1 != 3)
+ failures++;
+ if(uchar0 != 6)
+ failures++;
+
+ docall2(call1);
+ if(uchar1 != 5)
+ failures++;
+ if(uchar0 != 6)
+ failures++;
+
+ pcfunc = call2;
+ uchar2 = (*pcfunc)();
+ if(uchar2 != 15)
+ failures++;
+
+ uchar2 += (pcfunc)();
+ uchar2 += pcfunc();
+
+ success = failures;
+ done();
+ printf("failures: %d\n",failures);
+
+ return failures;
}