1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-08 15:29:37 +00:00

Change line endings from CRLF to LF

test/ref/pr1220.c was somehow added with CRLFs.
Other files use just LF.
This commit is contained in:
Jesse Rosenstock 2020-09-03 09:16:51 +02:00 committed by Oliver Schmidt
parent 676b14429d
commit 44b719d957

View File

@ -1,360 +1,360 @@
/* PR #1220 - test constant ternary, AND and OR */ /* PR #1220 - test constant ternary, AND and OR */
#include <stdio.h> #include <stdio.h>
/* test AND/OR, results as integers */ /* test AND/OR, results as integers */
#define CONTEXT_A(x) do {\ #define CONTEXT_A(x) do {\
s = 0, flags = 0, t = (x),\ s = 0, flags = 0, t = (x),\
printf("%3d %2X: %d\n", s, flags, t);\ printf("%3d %2X: %d\n", s, flags, t);\
} while (0) } while (0)
/* test AND/OR in ternary context */ /* test AND/OR in ternary context */
#define CONTEXT_B(x) do {\ #define CONTEXT_B(x) do {\
s = 0, flags = 0, t = (x ? 42 : -42),\ s = 0, flags = 0, t = (x ? 42 : -42),\
printf("%3d %2X: %d\n", s, flags, t);\ printf("%3d %2X: %d\n", s, flags, t);\
} while (0) } while (0)
int s, t; int s, t;
unsigned flags; unsigned flags;
int f(int x) int f(int x)
/* The call to this function should be and only be skipped strictly according to /* The call to this function should be and only be skipped strictly according to
** the short-circuit evaluation rule. ** the short-circuit evaluation rule.
*/ */
{ {
flags |= (x != 0) << s; flags |= (x != 0) << s;
++s; ++s;
return x; return x;
} }
#define _A f(a) #define _A f(a)
#define _B f(b) #define _B f(b)
#define _C f(c) #define _C f(c)
#define _D f(d) #define _D f(d)
#define _T (f(0), 256) #define _T (f(0), 256)
#define _F (f(256), 0) #define _F (f(256), 0)
void f0() void f0()
/* constant short-circuit */ /* constant short-circuit */
{ {
printf("f0()\n"); printf("f0()\n");
CONTEXT_A(_T && _T && _T); CONTEXT_A(_T && _T && _T);
CONTEXT_A(_F && _F && _F); CONTEXT_A(_F && _F && _F);
CONTEXT_A(_T || _T || _T); CONTEXT_A(_T || _T || _T);
CONTEXT_A(_F || _F || _F); CONTEXT_A(_F || _F || _F);
CONTEXT_A(_T && _T || _T && _T); CONTEXT_A(_T && _T || _T && _T);
CONTEXT_A(_F && _F || _F && _F); CONTEXT_A(_F && _F || _F && _F);
CONTEXT_A(_T && _F || _T && _F); CONTEXT_A(_T && _F || _T && _F);
CONTEXT_A(_F && _T || _F && _T); CONTEXT_A(_F && _T || _F && _T);
CONTEXT_A((_T && _T) || (_T && _T)); CONTEXT_A((_T && _T) || (_T && _T));
CONTEXT_A((_F && _F) || (_F && _F)); CONTEXT_A((_F && _F) || (_F && _F));
CONTEXT_A((_T && _F) || (_T && _F)); CONTEXT_A((_T && _F) || (_T && _F));
CONTEXT_A((_F && _T) || (_F && _T)); CONTEXT_A((_F && _T) || (_F && _T));
CONTEXT_A((_T || _T) && (_T || _T)); CONTEXT_A((_T || _T) && (_T || _T));
CONTEXT_A((_F || _F) && (_F || _F)); CONTEXT_A((_F || _F) && (_F || _F));
CONTEXT_A((_T || _F) && (_T || _F)); CONTEXT_A((_T || _F) && (_T || _F));
CONTEXT_A((_F || _T) && (_F || _T)); CONTEXT_A((_F || _T) && (_F || _T));
printf("\n"); printf("\n");
} }
void f1(int a, int b, int c) void f1(int a, int b, int c)
/* AND */ /* AND */
{ {
printf("f1(%d, %d, %d)\n", a, b, c); printf("f1(%d, %d, %d)\n", a, b, c);
CONTEXT_A(_A && _B && _C); CONTEXT_A(_A && _B && _C);
CONTEXT_A(_T && _B && _C); CONTEXT_A(_T && _B && _C);
CONTEXT_A(_A && _T && _C); CONTEXT_A(_A && _T && _C);
CONTEXT_A(_A && _B && _T); CONTEXT_A(_A && _B && _T);
CONTEXT_A(_F && _B && _C); CONTEXT_A(_F && _B && _C);
CONTEXT_A(_A && _F && _C); CONTEXT_A(_A && _F && _C);
CONTEXT_A(_A && _B && _F); CONTEXT_A(_A && _B && _F);
CONTEXT_A(_T && _T && _C); CONTEXT_A(_T && _T && _C);
CONTEXT_A(_A && _T && _T); CONTEXT_A(_A && _T && _T);
CONTEXT_A(_T && _B && _T); CONTEXT_A(_T && _B && _T);
printf("\n"); printf("\n");
} }
void f2(int a, int b, int c) void f2(int a, int b, int c)
/* OR */ /* OR */
{ {
printf("f2(%d, %d, %d)\n", a, b, c); printf("f2(%d, %d, %d)\n", a, b, c);
CONTEXT_A(_A || _B || _C); CONTEXT_A(_A || _B || _C);
CONTEXT_A(_T || _B || _C); CONTEXT_A(_T || _B || _C);
CONTEXT_A(_A || _T || _C); CONTEXT_A(_A || _T || _C);
CONTEXT_A(_A || _B || _T); CONTEXT_A(_A || _B || _T);
CONTEXT_A(_F || _B || _C); CONTEXT_A(_F || _B || _C);
CONTEXT_A(_A || _F || _C); CONTEXT_A(_A || _F || _C);
CONTEXT_A(_A || _B || _F); CONTEXT_A(_A || _B || _F);
CONTEXT_A(_F || _F || _C); CONTEXT_A(_F || _F || _C);
CONTEXT_A(_A || _F || _F); CONTEXT_A(_A || _F || _F);
CONTEXT_A(_F || _B || _F); CONTEXT_A(_F || _B || _F);
printf("\n"); printf("\n");
} }
void f3(int a, int b, int c, int d) void f3(int a, int b, int c, int d)
/* AND and OR */ /* AND and OR */
{ {
printf("f3(%d, %d, %d, %d)\n", a, b, c, d); printf("f3(%d, %d, %d, %d)\n", a, b, c, d);
CONTEXT_A(_A && _B || _C && _D); CONTEXT_A(_A && _B || _C && _D);
CONTEXT_A(_T && _T || _C && _D); CONTEXT_A(_T && _T || _C && _D);
CONTEXT_A(_A && _B || _T && _T); CONTEXT_A(_A && _B || _T && _T);
CONTEXT_A(_T && _B || _C && _D); CONTEXT_A(_T && _B || _C && _D);
CONTEXT_A(_A && _T || _C && _D); CONTEXT_A(_A && _T || _C && _D);
CONTEXT_A(_A && _B || _T && _D); CONTEXT_A(_A && _B || _T && _D);
CONTEXT_A(_A && _B || _C && _T); CONTEXT_A(_A && _B || _C && _T);
CONTEXT_A(_F && _B || _C && _D); CONTEXT_A(_F && _B || _C && _D);
CONTEXT_A(_A && _F || _C && _D); CONTEXT_A(_A && _F || _C && _D);
CONTEXT_A(_A && _B || _F && _D); CONTEXT_A(_A && _B || _F && _D);
CONTEXT_A(_A && _B || _C && _F); CONTEXT_A(_A && _B || _C && _F);
printf("\n"); printf("\n");
} }
void f4(int a, int b, int c, int d) void f4(int a, int b, int c, int d)
/* AND as top-level expression inside OR context */ /* AND as top-level expression inside OR context */
{ {
printf("f4(%d, %d, %d, %d)\n", a, b, c, d); printf("f4(%d, %d, %d, %d)\n", a, b, c, d);
CONTEXT_A((_A && _B) || (_C && _D)); CONTEXT_A((_A && _B) || (_C && _D));
CONTEXT_A((_T && _T) || (_C && _D)); CONTEXT_A((_T && _T) || (_C && _D));
CONTEXT_A((_A && _B) || (_T && _T)); CONTEXT_A((_A && _B) || (_T && _T));
CONTEXT_A((_T && _B) || (_C && _D)); CONTEXT_A((_T && _B) || (_C && _D));
CONTEXT_A((_A && _T) || (_C && _D)); CONTEXT_A((_A && _T) || (_C && _D));
CONTEXT_A((_A && _B) || (_T && _D)); CONTEXT_A((_A && _B) || (_T && _D));
CONTEXT_A((_A && _B) || (_C && _T)); CONTEXT_A((_A && _B) || (_C && _T));
CONTEXT_A((_F && _B) || (_C && _D)); CONTEXT_A((_F && _B) || (_C && _D));
CONTEXT_A((_A && _F) || (_C && _D)); CONTEXT_A((_A && _F) || (_C && _D));
CONTEXT_A((_A && _B) || (_F && _D)); CONTEXT_A((_A && _B) || (_F && _D));
CONTEXT_A((_A && _B) || (_C && _F)); CONTEXT_A((_A && _B) || (_C && _F));
printf("\n"); printf("\n");
} }
void f5(int a, int b, int c, int d) void f5(int a, int b, int c, int d)
/* OR as top-level expression inside AND context */ /* OR as top-level expression inside AND context */
{ {
printf("f5(%d, %d, %d, %d)\n", a, b, c, d); printf("f5(%d, %d, %d, %d)\n", a, b, c, d);
CONTEXT_A((_A || _B) && (_C || _D)); CONTEXT_A((_A || _B) && (_C || _D));
CONTEXT_A((_F || _F) && (_C || _D)); CONTEXT_A((_F || _F) && (_C || _D));
CONTEXT_A((_A || _B) && (_F || _F)); CONTEXT_A((_A || _B) && (_F || _F));
CONTEXT_A((_T || _B) && (_C || _D)); CONTEXT_A((_T || _B) && (_C || _D));
CONTEXT_A((_A || _T) && (_C || _D)); CONTEXT_A((_A || _T) && (_C || _D));
CONTEXT_A((_A || _B) && (_T || _D)); CONTEXT_A((_A || _B) && (_T || _D));
CONTEXT_A((_A || _B) && (_C || _T)); CONTEXT_A((_A || _B) && (_C || _T));
CONTEXT_A((_F || _B) && (_C || _D)); CONTEXT_A((_F || _B) && (_C || _D));
CONTEXT_A((_A || _F) && (_C || _D)); CONTEXT_A((_A || _F) && (_C || _D));
CONTEXT_A((_A || _B) && (_F || _D)); CONTEXT_A((_A || _B) && (_F || _D));
CONTEXT_A((_A || _B) && (_C || _F)); CONTEXT_A((_A || _B) && (_C || _F));
printf("\n"); printf("\n");
} }
void f0_B() void f0_B()
/* constant short-circuit */ /* constant short-circuit */
{ {
printf("f0_B()\n"); printf("f0_B()\n");
CONTEXT_B(_T && _T && _T); CONTEXT_B(_T && _T && _T);
CONTEXT_B(_F && _F && _F); CONTEXT_B(_F && _F && _F);
CONTEXT_B(_T || _T || _T); CONTEXT_B(_T || _T || _T);
CONTEXT_B(_F || _F || _F); CONTEXT_B(_F || _F || _F);
CONTEXT_B(_T && _T || _T && _T); CONTEXT_B(_T && _T || _T && _T);
CONTEXT_B(_F && _F || _F && _F); CONTEXT_B(_F && _F || _F && _F);
CONTEXT_B(_T && _F || _T && _F); CONTEXT_B(_T && _F || _T && _F);
CONTEXT_B(_F && _T || _F && _T); CONTEXT_B(_F && _T || _F && _T);
CONTEXT_B((_T && _T) || (_T && _T)); CONTEXT_B((_T && _T) || (_T && _T));
CONTEXT_B((_F && _F) || (_F && _F)); CONTEXT_B((_F && _F) || (_F && _F));
CONTEXT_B((_T && _F) || (_T && _F)); CONTEXT_B((_T && _F) || (_T && _F));
CONTEXT_B((_F && _T) || (_F && _T)); CONTEXT_B((_F && _T) || (_F && _T));
CONTEXT_B((_T || _T) && (_T || _T)); CONTEXT_B((_T || _T) && (_T || _T));
CONTEXT_B((_F || _F) && (_F || _F)); CONTEXT_B((_F || _F) && (_F || _F));
CONTEXT_B((_T || _F) && (_T || _F)); CONTEXT_B((_T || _F) && (_T || _F));
CONTEXT_B((_F || _T) && (_F || _T)); CONTEXT_B((_F || _T) && (_F || _T));
printf("\n"); printf("\n");
} }
void f1_B(int a, int b, int c) void f1_B(int a, int b, int c)
/* AND */ /* AND */
{ {
printf("f1_B(%d, %d, %d)\n", a, b, c); printf("f1_B(%d, %d, %d)\n", a, b, c);
CONTEXT_B(_A && _B && _C); CONTEXT_B(_A && _B && _C);
CONTEXT_B(_T && _B && _C); CONTEXT_B(_T && _B && _C);
CONTEXT_B(_A && _T && _C); CONTEXT_B(_A && _T && _C);
CONTEXT_B(_A && _B && _T); CONTEXT_B(_A && _B && _T);
CONTEXT_B(_F && _B && _C); CONTEXT_B(_F && _B && _C);
CONTEXT_B(_A && _F && _C); CONTEXT_B(_A && _F && _C);
CONTEXT_B(_A && _B && _F); CONTEXT_B(_A && _B && _F);
CONTEXT_B(_T && _T && _C); CONTEXT_B(_T && _T && _C);
CONTEXT_B(_A && _T && _T); CONTEXT_B(_A && _T && _T);
CONTEXT_B(_T && _B && _T); CONTEXT_B(_T && _B && _T);
printf("\n"); printf("\n");
} }
void f2_B(int a, int b, int c) void f2_B(int a, int b, int c)
/* OR */ /* OR */
{ {
printf("f2_B(%d, %d, %d)\n", a, b, c); printf("f2_B(%d, %d, %d)\n", a, b, c);
CONTEXT_B(_A || _B || _C); CONTEXT_B(_A || _B || _C);
CONTEXT_B(_T || _B || _C); CONTEXT_B(_T || _B || _C);
CONTEXT_B(_A || _T || _C); CONTEXT_B(_A || _T || _C);
CONTEXT_B(_A || _B || _T); CONTEXT_B(_A || _B || _T);
CONTEXT_B(_F || _B || _C); CONTEXT_B(_F || _B || _C);
CONTEXT_B(_A || _F || _C); CONTEXT_B(_A || _F || _C);
CONTEXT_B(_A || _B || _F); CONTEXT_B(_A || _B || _F);
CONTEXT_B(_F || _F || _C); CONTEXT_B(_F || _F || _C);
CONTEXT_B(_A || _F || _F); CONTEXT_B(_A || _F || _F);
CONTEXT_B(_F || _B || _F); CONTEXT_B(_F || _B || _F);
printf("\n"); printf("\n");
} }
void f3_B(int a, int b, int c, int d) void f3_B(int a, int b, int c, int d)
/* AND and OR */ /* AND and OR */
{ {
printf("f3_B(%d, %d, %d, %d)\n", a, b, c, d); printf("f3_B(%d, %d, %d, %d)\n", a, b, c, d);
CONTEXT_B(_A && _B || _C && _D); CONTEXT_B(_A && _B || _C && _D);
CONTEXT_B(_T && _T || _C && _D); CONTEXT_B(_T && _T || _C && _D);
CONTEXT_B(_A && _B || _T && _T); CONTEXT_B(_A && _B || _T && _T);
CONTEXT_B(_T && _B || _C && _D); CONTEXT_B(_T && _B || _C && _D);
CONTEXT_B(_A && _T || _C && _D); CONTEXT_B(_A && _T || _C && _D);
CONTEXT_B(_A && _B || _T && _D); CONTEXT_B(_A && _B || _T && _D);
CONTEXT_B(_A && _B || _C && _T); CONTEXT_B(_A && _B || _C && _T);
CONTEXT_B(_F && _B || _C && _D); CONTEXT_B(_F && _B || _C && _D);
CONTEXT_B(_A && _F || _C && _D); CONTEXT_B(_A && _F || _C && _D);
CONTEXT_B(_A && _B || _F && _D); CONTEXT_B(_A && _B || _F && _D);
CONTEXT_B(_A && _B || _C && _F); CONTEXT_B(_A && _B || _C && _F);
printf("\n"); printf("\n");
} }
void f4_B(int a, int b, int c, int d) void f4_B(int a, int b, int c, int d)
/* AND as top-level expression inside OR context */ /* AND as top-level expression inside OR context */
{ {
printf("f4_B(%d, %d, %d, %d)\n", a, b, c, d); printf("f4_B(%d, %d, %d, %d)\n", a, b, c, d);
CONTEXT_B((_A && _B) || (_C && _D)); CONTEXT_B((_A && _B) || (_C && _D));
CONTEXT_B((_T && _T) || (_C && _D)); CONTEXT_B((_T && _T) || (_C && _D));
CONTEXT_B((_A && _B) || (_T && _T)); CONTEXT_B((_A && _B) || (_T && _T));
CONTEXT_B((_T && _B) || (_C && _D)); CONTEXT_B((_T && _B) || (_C && _D));
CONTEXT_B((_A && _T) || (_C && _D)); CONTEXT_B((_A && _T) || (_C && _D));
CONTEXT_B((_A && _B) || (_T && _D)); CONTEXT_B((_A && _B) || (_T && _D));
CONTEXT_B((_A && _B) || (_C && _T)); CONTEXT_B((_A && _B) || (_C && _T));
CONTEXT_B((_F && _B) || (_C && _D)); CONTEXT_B((_F && _B) || (_C && _D));
CONTEXT_B((_A && _F) || (_C && _D)); CONTEXT_B((_A && _F) || (_C && _D));
CONTEXT_B((_A && _B) || (_F && _D)); CONTEXT_B((_A && _B) || (_F && _D));
CONTEXT_B((_A && _B) || (_C && _F)); CONTEXT_B((_A && _B) || (_C && _F));
printf("\n"); printf("\n");
} }
void f5_B(int a, int b, int c, int d) void f5_B(int a, int b, int c, int d)
/* OR as top-level expression inside AND context */ /* OR as top-level expression inside AND context */
{ {
printf("f5_B(%d, %d, %d, %d)\n", a, b, c, d); printf("f5_B(%d, %d, %d, %d)\n", a, b, c, d);
CONTEXT_B((_A || _B) && (_C || _D)); CONTEXT_B((_A || _B) && (_C || _D));
CONTEXT_B((_F || _F) && (_C || _D)); CONTEXT_B((_F || _F) && (_C || _D));
CONTEXT_B((_A || _B) && (_F || _F)); CONTEXT_B((_A || _B) && (_F || _F));
CONTEXT_B((_T || _B) && (_C || _D)); CONTEXT_B((_T || _B) && (_C || _D));
CONTEXT_B((_A || _T) && (_C || _D)); CONTEXT_B((_A || _T) && (_C || _D));
CONTEXT_B((_A || _B) && (_T || _D)); CONTEXT_B((_A || _B) && (_T || _D));
CONTEXT_B((_A || _B) && (_C || _T)); CONTEXT_B((_A || _B) && (_C || _T));
CONTEXT_B((_F || _B) && (_C || _D)); CONTEXT_B((_F || _B) && (_C || _D));
CONTEXT_B((_A || _F) && (_C || _D)); CONTEXT_B((_A || _F) && (_C || _D));
CONTEXT_B((_A || _B) && (_F || _D)); CONTEXT_B((_A || _B) && (_F || _D));
CONTEXT_B((_A || _B) && (_C || _F)); CONTEXT_B((_A || _B) && (_C || _F));
printf("\n"); printf("\n");
} }
int main() int main()
{ {
f0(); f0();
f1(0, 0, 0); f1(0, 0, 0);
f2(0, 0, 0); f2(0, 0, 0);
f3(0, 0, 0, 0); f3(0, 0, 0, 0);
f4(0, 0, 0, 0); f4(0, 0, 0, 0);
f5(0, 0, 0, 0); f5(0, 0, 0, 0);
f1(1, 1, 1); f1(1, 1, 1);
f2(1, 1, 1); f2(1, 1, 1);
f3(1, 1, 1, 1); f3(1, 1, 1, 1);
f4(1, 1, 1, 1); f4(1, 1, 1, 1);
f5(1, 1, 1, 1); f5(1, 1, 1, 1);
f3(1, 0, 1, 0); f3(1, 0, 1, 0);
f4(1, 0, 1, 0); f4(1, 0, 1, 0);
f5(1, 0, 1, 0); f5(1, 0, 1, 0);
f3(0, 1, 0, 1); f3(0, 1, 0, 1);
f4(0, 1, 0, 1); f4(0, 1, 0, 1);
f5(0, 1, 0, 1); f5(0, 1, 0, 1);
f0_B(); f0_B();
f1_B(0, 0, 0); f1_B(0, 0, 0);
f2_B(0, 0, 0); f2_B(0, 0, 0);
f3_B(0, 0, 0, 0); f3_B(0, 0, 0, 0);
f4_B(0, 0, 0, 0); f4_B(0, 0, 0, 0);
f5_B(0, 0, 0, 0); f5_B(0, 0, 0, 0);
f1_B(1, 1, 1); f1_B(1, 1, 1);
f2_B(1, 1, 1); f2_B(1, 1, 1);
f3_B(1, 1, 1, 1); f3_B(1, 1, 1, 1);
f4_B(1, 1, 1, 1); f4_B(1, 1, 1, 1);
f5_B(1, 1, 1, 1); f5_B(1, 1, 1, 1);
f3_B(1, 0, 1, 0); f3_B(1, 0, 1, 0);
f4_B(1, 0, 1, 0); f4_B(1, 0, 1, 0);
f5_B(1, 0, 1, 0); f5_B(1, 0, 1, 0);
f3_B(0, 1, 0, 1); f3_B(0, 1, 0, 1);
f4_B(0, 1, 0, 1); f4_B(0, 1, 0, 1);
f5_B(0, 1, 0, 1); f5_B(0, 1, 0, 1);
return 0; return 0;
} }