emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Bug: Incorrect type in ob-C.el for D code [8.3.4 (8.3.4-elpa @ ~/.em


From: Chris Andrews
Subject: [O] Bug: Incorrect type in ob-C.el for D code [8.3.4 (8.3.4-elpa @ ~/.emacs.d/elpa/org-20160222/)]
Date: Tue, 23 Feb 2016 16:45:03 -0600

Issue is fairly straightforward.  When evaluating a D code block that includes a table var, this error is thrown by the DMD compiler.

~\Temp\babel-1032v-N\C-src-1032Xig.d(25): Error: cannot implicitly convert _expression_ (row) of type ulong to uint
Failed: ["dmd", "-v", "-o-", "~/Temp/babel-1032v-N/C-src-1032Xig.d", "-I~/Local/Temp/babel-1032v-N"]

The type `ulong` is not appropriate for the generated code, as it represents an array index.  The fix is to change line 434 in ob-C.el from:

 "string %s_h (ulong row, string col) { return %s[row][get_column_num(%s_header,col)]; }"

to read:

 "string %s_h (size_t row, string col) { return %s[row][get_column_num(%s_header,col)]; }"


The use of `size_t` is correct for array indexes, and fixes the error in the compiler.

Reference: http://dlang.org/spec/portability.html
"Array indices should be of type size_t."

System information follows.

Thank you!

Emacs  : GNU Emacs 24.4.1 (i686-pc-mingw32)
 of 2014-10-24 on LEG570
Package: Org-mode version 8.3.4 (8.3.4-elpa @ ~/.emacs.d/elpa/org-20160222/)

current state:
==============
(org-babel-do-load-languages
 'org-babel-load-languages
 '((emacs-lisp . t)
   (C . t)
   ))

--
Chris Andrews
http://www.darkspiredesign.com
(337) 247-4860

reply via email to

[Prev in Thread] Current Thread [Next in Thread]