diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-04-19 06:19:05 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-04-19 06:19:05 -0700 |
commit | 7b64f8f016c86f8a5bf4fcdd2f70d6ac83a1ec9b (patch) | |
tree | ca2320e707f947a237f75cf72870ad48cabc6fc2 | |
parent | 2a038c0b77704fd53138a2d0bc9d1803d96a1a77 (diff) | |
download | cppawk-7b64f8f016c86f8a5bf4fcdd2f70d6ac83a1ec9b.tar.gz cppawk-7b64f8f016c86f8a5bf4fcdd2f70d6ac83a1ec9b.tar.bz2 cppawk-7b64f8f016c86f8a5bf4fcdd2f70d6ac83a1ec9b.zip |
loop: argmax: no iters must produce nil.
-rw-r--r-- | cppawk-include/iter.h | 4 | ||||
-rw-r--r-- | testcases-iter | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/cppawk-include/iter.h b/cppawk-include/iter.h index 23f71fd..93bb2d0 100644 --- a/cppawk-include/iter.h +++ b/cppawk-include/iter.h @@ -249,7 +249,7 @@ function __loop_argmax(a, arga, b, argb) #define __am_old __g(arg) #define __temp_argmax(amx, arg, expr) __am_max, __am_old, -#define __init_argmax(amx, arg, expr) (__am_max = 0) || (amx = 0) +#define __init_argmax(amx, arg, expr) (__am_max = 0) || (amx = __nil) #define __test_argmax(amx, arg, expr) 1 #define __prep_argmax(amx, arg, expr) ((__am_old = __am_max) || 1) && \ ((__am_max = \ @@ -267,7 +267,7 @@ function __loop_argmin(a, arga, b, argb) } #define __temp_argmin(ami, arg, expr) __am_min, __am_old, -#define __init_argmin(ami, arg, expr) (__g(mi) = 0) || (ami = 0) +#define __init_argmin(ami, arg, expr) (__am_min = 0) || (ami = __nil) #define __test_argmin(ami, arg, expr) 1 #define __prep_argmin(ami, arg, expr) ((__am_old = __am_min) || 1) && \ ((__am_min = \ diff --git a/testcases-iter b/testcases-iter index 6455fa6..48138c0 100644 --- a/testcases-iter +++ b/testcases-iter @@ -408,3 +408,20 @@ BEGIN { 8 4 9 5 10 5 +-- +19: +$cppawk ' +#include <iter.h> + +BEGIN { + loop (while (0), + argmax (mx, x, sin(x)), + argmin (mi, x, sin(x))) + ; // empty + + print mx == "" && mx != 0 + print mi == "" && mi != 0 +}' +: +1 +1 |