~ chicken-core (chicken-5) 7079f6853e4d9e3a339193420086e454825a6fd1


commit 7079f6853e4d9e3a339193420086e454825a6fd1
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:26 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 ea87ced7..c9970713 100644
--- a/chicken-ffi-syntax.scm
+++ b/chicken-ffi-syntax.scm
@@ -195,6 +195,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
@@ -202,6 +203,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