Hi,
The following diff from upstream CVS should fix this. However, I've
not managed to regenerate src/autoloads.c such that it will compile
(using installed gosh and the the rules in src/Makefile).
Regards,
Roger
===================================================================
RCS file: /cvsroot/gauche/Gauche/lib/gauche/cgen.scm,v
retrieving revision 1.8
retrieving revision 1.10
diff -u -r1.8 -r1.10
--- gauche/Gauche/lib/gauche/cgen.scm 2005/05/30 07:50:12 1.8
+++ gauche/Gauche/lib/gauche/cgen.scm 2005/06/16 07:45:35 1.10
@@ -30,7 +30,7 @@
;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;;;
-;;; $Id: cgen.scm,v 1.8 2005/05/30 07:50:12 shirok Exp $
+;;; $Id: cgen.scm,v 1.10 2005/06/16 07:45:35 shirok Exp $
;;;
;; *EXPERIMENTAL*
@@ -148,7 +148,7 @@
(c-file :init-keyword :c-file :init-value #f)
(h-file :init-keyword :h-file :init-value #f)
(preamble :init-keyword :preamble
- :init-value '("/* Generated by gauche.cgen $Revision: 1.8 $ */"))
+ :init-value '("/* Generated by gauche.cgen $Revision: 1.10 $ */"))
(pre-decl :init-keyword :pre-decl :init-value '())
(init-prologue :init-keyword :init-prologue :init-value #f)
(init-epilogue :init-keyword :init-epilogue :init-value #f)
@@ -277,11 +277,15 @@
(let1 count (ref dl 'count)
(slot-push! dl 'init-thunks ithunk)
(inc! (ref dl 'count))
- (format "SCM_OBJ(~a~a.~a[~a])"
- (if value-type? "" "&")
- (static-data-c-struct-name category)
- (ref dl 'c-member-name)
- count)))))
+ (if value-type?
+ (format "~a.~a[~a]" ; no cast, for this'll be also used as lvalue.
+ (static-data-c-struct-name category)
+ (ref dl 'c-member-name)
+ count)
+ (format "SCM_OBJ(&~a.~a[~a])"
+ (static-data-c-struct-name category)
+ (ref dl 'c-member-name)
+ count))))))
(define (cgen-allocate-static-array category c-type init-thunks)
(fold (lambda (init-thunk seed)
@@ -880,9 +884,13 @@
(define (cgen-with-output-file file thunk)
(receive (port tmpfile) (sys-mkstemp file)
(with-error-handler
- (lambda (e) (sys-unlink tmpfile) (raise e))
+ (lambda (e)
+ (close-output-port port)
+ (sys-unlink tmpfile)
+ (raise e))
(lambda ()
(with-output-to-port port thunk)
+ (close-output-port port)
(sys-rename tmpfile file)))))
(define cgen-unique-name
--
Roger Leigh
Printing on GNU/Linux? http://gimp-print.sourceforge.net/
Debian GNU/Linux http://www.debian.org/
GPG Public Key: 0x25BFB848. Please sign and encrypt your mail.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]