decodetree: Drop check for less than 2 patterns in a group
authorRichard Henderson <richard.henderson@linaro.org>
Mon, 8 Jun 2020 17:41:49 +0000 (10:41 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 9 Jun 2020 16:19:48 +0000 (09:19 -0700)
While it makes little sense for the end product to have a group
containing only a single pattern, avoiding this case within an
incremental patch set is troublesome.

Because this is expected to be a transient condition, do not
bother "optimizing" this case, e.g. by folding away the group.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
scripts/decodetree.py
tests/decode/succ_pattern_group_nest4.decode [new file with mode: 0644]

index 7e3b1d1399e89eb8b5012cc044346157721ba20d..530d41ca62fae372f2db521a5b4dd8196d9facf7 100755 (executable)
@@ -1024,8 +1024,6 @@ def parse_file(f, parent_pat):
         if name == '}' or name == ']':
             if len(toks) != 0:
                 error(start_lineno, 'extra tokens after close brace')
-            if len(parent_pat.pats) < 2:
-                error(lineno, 'less than two patterns within braces')
 
             # Make sure { } and [ ] nest properly.
             if (name == '}') != isinstance(parent_pat, IncMultiPattern):
diff --git a/tests/decode/succ_pattern_group_nest4.decode b/tests/decode/succ_pattern_group_nest4.decode
new file mode 100644 (file)
index 0000000..dc54a1d
--- /dev/null
@@ -0,0 +1,13 @@
+# This work is licensed under the terms of the GNU LGPL, version 2 or later.
+# See the COPYING.LIB file in the top-level directory.
+
+# Verify deeper nesting, and a single element in the groups.
+{
+  [
+    {
+      [
+        sub1  00000000 a:8 b:8 c:8
+      ]
+    }
+  ]
+}