diff --git a/module/language/c99/compiler.mes b/module/language/c99/compiler.mes index 59db6ac8..50424a86 100644 --- a/module/language/c99/compiler.mes +++ b/module/language/c99/compiler.mes @@ -798,6 +798,11 @@ _))))) ((cast ,cast ,o) ((expr->accu info) o)) + ((assn-expr (p-expr (ident ,name)) ,op ,expr) + (let ((info ((ast->info info) o))) + (clone info #:text (append (.text info) + ((ident->accu info) name))))) + (_ (format (current-error-port) "SKIP: expr->accu=~s\n" o) barf diff --git a/scaffold/mini-mes.c b/scaffold/mini-mes.c index 9b14d42c..81488d55 100644 --- a/scaffold/mini-mes.c +++ b/scaffold/mini-mes.c @@ -913,10 +913,8 @@ eval_apply () SCM macro; SCM expanders; macro_expand: -#if __GNUC__ - //FIXME if (TYPE (r1) == TPAIR - && (macro = lookup_macro (car (r1), r0)) != cell_f) // FIXME GNUC + && (macro = lookup_macro (car (r1), r0)) != cell_f) { r1 = cons (macro, CDR (r1)); goto apply; @@ -933,7 +931,6 @@ eval_apply () goto apply; } } -#endif goto vm_return; begin: x = cell_unspecified; @@ -1341,7 +1338,6 @@ bload_env (SCM a) ///((internal)) g_stdin = STDIN; r0 = mes_builtins (r0); #if 1 - //__GNUC__ puts ("symbols: "); SCM s = g_symbols; while (s && s != cell_nil) { diff --git a/scaffold/t.c b/scaffold/t.c index b1193295..81fb64ea 100644 --- a/scaffold/t.c +++ b/scaffold/t.c @@ -534,6 +534,12 @@ test (char *p) puts ("t: if (!(t = 1)) ?\n"); if (!(t = 1)) return 1; + puts ("t: if ((f = 0) != 0) ?\n"); + if ((f = 0) != 0) return 1; + + puts ("t: if ((t = 1) != 1) ?\n"); + if ((t = 1) != 1) return 1; + puts ("t: (one == 1) ?\n"); (one == 1) ? 1 : exit (1);