From 2a3d996077453c3171d67223271bd3ed8aaaf926 Mon Sep 17 00:00:00 2001 From: acqn Date: Mon, 31 Aug 2020 20:41:36 +0800 Subject: [PATCH] Improved test case for PR #1220. --- test/ref/pr1220.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/test/ref/pr1220.c b/test/ref/pr1220.c index 4f88ada73..eb9f7c7f5 100644 --- a/test/ref/pr1220.c +++ b/test/ref/pr1220.c @@ -10,14 +10,14 @@ /* test AND/OR in ternary context */ #define CONTEXT_B(x) do {\ - s = 0, flags = 0,\ - (x ? printf("%3d %2X: 1\n", s, flags) : printf("%3d %2X: 0\n", s, flags));\ + s = 0, flags = 0, t = (x ? 42 : -42),\ + printf("%3d %2X: %d\n", s, flags, t);\ } while (0) int s, t; unsigned flags; -int f(x) +int f(int x) /* The call to this function should be and only be skipped strictly according to ** the short-circuit evaluation rule. */ @@ -31,8 +31,8 @@ int f(x) #define _B f(b) #define _C f(c) #define _D f(d) -#define _T (f(0), -1) -#define _F (f(-1), 0) +#define _T (f(0), 256) +#define _F (f(256), 0) void f0() /* constant short-circuit */ @@ -176,7 +176,7 @@ void f5(int a, int b, int c, int d) void f0_B() /* constant short-circuit */ { - printf("f0()\n"); + printf("f0_B()\n"); CONTEXT_B(_T && _T && _T); CONTEXT_B(_F && _F && _F); @@ -205,7 +205,7 @@ void f0_B() void f1_B(int a, int b, int c) /* AND */ { - printf("f1(%d, %d, %d)\n", a, b, c); + printf("f1_B(%d, %d, %d)\n", a, b, c); CONTEXT_B(_A && _B && _C); @@ -227,7 +227,7 @@ void f1_B(int a, int b, int c) void f2_B(int a, int b, int c) /* OR */ { - printf("f2(%d, %d, %d)\n", a, b, c); + printf("f2_B(%d, %d, %d)\n", a, b, c); CONTEXT_B(_A || _B || _C); @@ -249,7 +249,7 @@ void f2_B(int a, int b, int c) void f3_B(int a, int b, int c, int d) /* AND and OR */ { - printf("f3(%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(_T && _T || _C && _D); @@ -271,7 +271,7 @@ void f3_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 */ { - printf("f4(%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((_T && _T) || (_C && _D)); @@ -293,7 +293,7 @@ void f4_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 */ { - printf("f5(%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((_F || _F) && (_C || _D));