mescc: Tinycc support: multiple statements in default case.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 23 Jul 2017 21:04:00 +0000 (23:04 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 09:36:44 +0000 (11:36 +0200)
* module/language/c99/compiler.mes (clause->info): Support multiple
  statements in default case.

module/language/c99/compiler.mes
scaffold/tests/44-switch.c

index f271ace6db5cd712ce1915e58c7fd362ca90ac9f..0be21182fdfab73d4b4deb5a3bc7f8f8a0f70fca 100644 (file)
          (loop statement (append cases (list (test->text test))) clause))
         ((default ,statement)
          (loop statement cases clause))
+        ((default . ,statements)
+         (loop `(compd-stmt (block-item-list ,@statements)) cases clause))
         ((compd-stmt (block-item-list))
          (loop '() cases clause))
         ((compd-stmt (block-item-list . ,elements))
index 5fefb5817ba13dbf9a8033eab19e4b8efdb731e6..a90c58f3ac401582e4d859e129dba299c5641ec7 100644 (file)
@@ -51,6 +51,7 @@ swits (int c)
       x = 1;
       break;
     default:
+      x = 2;
       x = 2;
       break;
     }