This isn't my usual style, but others may like it more. The output is
controlled by a new variable `*null-pointer*'. Maybe it will be
configurable later.
temporary-variable class
codegen-proto.lisp
+ *null-pointer* variable
*sod-ap* variable
*sod-master-ap* variable
block-inst class
\begin{tabular}[C]{*2{>{\codeface}l}} \hlx*{hv}
\thd{\textbf{Variable}} & \thd{\textbf{Name format}} \\ \hlx{vhv}
{}*sod-ap* & sod__ap \\
- {}*sod-master-ap* & sod__master_ap \\ \hlx*{vh}
+ {}*sod-master-ap* & sod__master_ap \\
+ {}*null-pointer* & NULL \\ \hlx*{vh}
\end{tabular}
\caption{Well-known temporary names}
\label{tab:codegen.codegen.well-known-temps}
(defparameter *sod-tmp-val*
(make-instance 'temporary-name :tag "sod__t"))
+(export '*null-pointer*)
+(defparameter *null-pointer* "NULL")
+
;;;--------------------------------------------------------------------------
;;; Instructions.
(sod-class-nickname message-class)
(sod-message-name message)
(sod-class-nickname chain-head))
- 0)))
+ *null-pointer*)))
(defmethod method-entry-slot-name ((entry method-entry))
(let* ((method (method-entry-effective-method entry))
(make-trampoline codegen (sod-method-class method)
(lambda (target)
(invoke chain target)))
- 0))
+ *null-pointer*))
(invoke (chain target)
(if (null chain)
(funcall kernel target)