mescc: Tinycc support: bugfix *++foo,*--foo.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 29 Jul 2017 08:45:16 +0000 (10:45 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 29 Jul 2017 08:45:16 +0000 (10:45 +0200)
* module/language/c99/compiler.mes (c99-input->full-ast): Pre-define NULL.
  (expr->pointer, expr->size): Handle pre/post-inc/dec.

module/language/c99/compiler.mes

index 7ea29a904cebcd562cc1f36b3909b9e29580ff43..6267652296261635951be867a05e09167a2ce069 100644 (file)
@@ -57,6 +57,7 @@
     (parse-c99
      #:inc-dirs (append includes (cons* include "mlibc/include" "mlibc" (or (and=> (getenv "C_INCLUDE_PATH") (cut string-split <> #\:)) '())))
      #:cpp-defs `(
+                  "NULL=0"
                   "__i386__=1"
                   "POSIX=0"
                   "_POSIX_SOURCE=0"
     ((de-ref ,expr) (1- (expr->pointer info expr)))
     ((add ,a ,b) (expr->pointer info a))
     ((sub ,a ,b) (expr->pointer info a))
+    ((pre-inc ,a) (expr->pointer info a))
+    ((pre-dec ,a) (expr->pointer info a))
+    ((post-inc ,a) (expr->pointer info a))
+    ((post-dec ,a) (expr->pointer info a))
     (_ (stderr "expr->pointer: unsupported: ~s\n" o) 0)))
 
 (define (expr->size info o)
     ((de-ref ,expr) (expr->size info expr))
     ((add ,a ,b) (expr->size info a))
     ((sub ,a ,b) (expr->size info a))
+    ((pre-inc ,a) (expr->size info a))
+    ((pre-dec ,a) (expr->size info a))
+    ((post-inc ,a) (expr->size info a))
+    ((post-dec ,a) (expr->size info a))
     (_ (stderr "expr->size: unsupported: ~s\n" o) 4)))
 
 (define (p-expr->type info o)