~ chicken-core (chicken-5) 90b57243dbf25a2b0e32114746d593a8599e1528


commit 90b57243dbf25a2b0e32114746d593a8599e1528
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Nov 19 11:52:34 2019 +0100
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Sun Nov 24 15:04:33 2019 +1300

    Disallow using -c option in csc with multiple files.
    
    Invoking csc with -c and multiple Scheme or C input files results
    in any explicit output filenames given being ignored, since there
    is an ambiguity for which object file the target filename applies.
    C compilers disallow this altogether, so we follow suit.
    
    See also #1655 for more information.
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/csc.scm b/csc.scm
index 60272816..be3e6ad2 100644
--- a/csc.scm
+++ b/csc.scm
@@ -570,6 +570,11 @@ EOF
 	     (when show-libs (print* (linker-libraries) #\space))
 	     (newline)
 	     (exit) )
+	   (when (and compile-only
+		      (> (+ (length scheme-files)
+			    (length c-files))
+			 1))
+	     (stop "the `-c' option cannot be used in combination with multiple input files"))
 	   (cond ((null? scheme-files)
 		  (when (and (null? c-files)
 			     (null? object-files))
Trap