diff options
-rw-r--r-- | src/mds-kbdc/compile-layout.c | 2 | ||||
-rw-r--r-- | test-files/mds-kbdc/compile-layout/invalid/mix_of_with_and_without_sideeffect | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/mds-kbdc/compile-layout.c b/src/mds-kbdc/compile-layout.c index db2680d..99378f5 100644 --- a/src/mds-kbdc/compile-layout.c +++ b/src/mds-kbdc/compile-layout.c @@ -2428,7 +2428,7 @@ static int compile_map(mds_kbdc_tree_map_t* restrict tree) done: mds_kbdc_tree_free(seq); mds_kbdc_tree_free(res); - have_side_effect = old_have_side_effect; + have_side_effect |= old_have_side_effect; return 0; FAIL_BEGIN; mds_kbdc_include_stack_free(include_stack); diff --git a/test-files/mds-kbdc/compile-layout/invalid/mix_of_with_and_without_sideeffect b/test-files/mds-kbdc/compile-layout/invalid/mix_of_with_and_without_sideeffect new file mode 100644 index 0000000..9c9a0f8 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/invalid/mix_of_with_and_without_sideeffect @@ -0,0 +1,15 @@ +let \1 : {0} +function f/0 + if 1 # if statement is just to reduce warnings + "\set(1 0 0)" + "c" + end if +end function +macro m/0 + "a" + "\f()" + "b" + "\f()" +end macro +m() + |