From 8cb16e665dbb5f87aa58856049c1ad6067dc6293 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Wed, 17 Jan 2024 13:16:29 +0100 Subject: prog: handle multiple matching union fields If conditions of several union fields are satisfied, select one randomly. This would be a more logical semantics. When conditional struct fields are translated to unions, negate the condition for the union alternative. --- sys/test/expressions.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'sys/test') diff --git a/sys/test/expressions.txt b/sys/test/expressions.txt index c99c1364b..16d5b96a7 100644 --- a/sys/test/expressions.txt +++ b/sys/test/expressions.txt @@ -56,3 +56,15 @@ conditional_struct_minimize { } [packed] test$conditional_struct_minimize(a ptr[in, conditional_struct_minimize]) + +conditional_union [ + u1 int8 (if[value[conditional_union_parent:f1] == 0]) + u2 int8 +] + +conditional_union_parent { + f1 int8:1 + f2 conditional_union +} + +test$conditional_union(a ptr[in, conditional_union_parent]) -- cgit mrf-deployment