lib/tests/scaffold/7u-struct-size10.c
lib/tests/scaffold/7u-vstack.c
lib/tests/scaffold/70-array-in-struct-init.c
+lib/tests/scaffold/70-struct-short-enum-init.c
lib/tests/setjmp/80-setjmp.c
lib/tests/stdio/80-sscanf.c
lib/tests/stdlib/80-qsort.c
--- /dev/null
+/* -*-comment-start: "//";comment-end:""-*-
+ * GNU Mes --- Maxwell Equations of Software
+ * Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+ *
+ * This file is part of GNU Mes.
+ *
+ * GNU Mes is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or (at
+ * your option) any later version.
+ *
+ * GNU Mes is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <mes/lib.h>
+
+struct foo
+{
+ short one;
+ short two;
+};
+
+enum bar
+ {
+ baz = 22
+ };
+
+struct foo foe = { baz, 33 };
+
+int
+main ()
+{
+ oputs ("struct foo foe = {");
+ oputs (itoa (foe.one));
+ oputs (",");
+ oputs (itoa (foe.two));
+ oputs ("};");
+ oputs ("\n");
+ return 0;
+}
(if (= reg-size 8) `((#:string ,(string-join strings "")) "%0")
`((#:string ,(string-join strings ""))))))
((ident ,name) (let ((var (ident->variable info name)))
- `((#:address ,var))))
+ (if (number? var) (int->bv type var info)
+ `((#:address ,var)))))
((initzer-list . ,inits)
(cond ((structured-type? type)
(map (cut init->data <> <> info) (map cdr (struct->init-fields type)) inits))