~ chicken-core (chicken-5) d17df1bf9af7dfb74f67a63118c9df65e4401645


commit d17df1bf9af7dfb74f67a63118c9df65e4401645
Author:     LemonBoy <thatlemon@gmail.com>
AuthorDate: Sat May 27 22:58:31 2017 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Tue May 30 11:36:15 2017 +1200

    Check the syntax correctness for some constructs
    
    Forgetting to do so leads to segfaults in the compiler and suboptimal
    error messages for the end user.
    
    Signed-off-by: Peter Bex <peter@more-magic.net>
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/chicken-ffi-syntax.scm b/chicken-ffi-syntax.scm
index a14369b4..1bb05407 100644
--- a/chicken-ffi-syntax.scm
+++ b/chicken-ffi-syntax.scm
@@ -203,6 +203,7 @@
  '()
  (##sys#er-transformer
   (lambda (form r c)
+    (##sys#check-syntax 'define-foreign-type form '(_ symbol symbol . #(_ 0 2)))
     `(##core#define-foreign-type ,@(cdr form)))))
 
 (##sys#extend-macro-environment
@@ -210,6 +211,7 @@
  '()
  (##sys#er-transformer
   (lambda (form r c)
+    (##sys#check-syntax 'define-foreign-variable form '(_ symbol symbol . #(string 0 1)))
     `(##core#define-foreign-variable ,@(cdr form)))))
 
 (##sys#extend-macro-environment
Trap