\begin{table}
\begin{tabular}[C]{*2{>{\codeface}l}l} \hlx*{hv}
- \thd{\textbf{C name}} & \thd{\textbf{Lisp name}} \\ \hlx{vhv}
- _Atomic & :atomic \\
- const & :const \\
- restrict & :restrict \\
- volatile & :volatile \\ \hlx*{vh}
+ \thd{C name} & \thd{Lisp name} \\ \hlx{vhv}
+ _Atomic & :atomic \\
+ const & :const \\
+ restrict & :restrict \\
+ volatile & :volatile \\ \hlx*{vh}
\end{tabular}
\caption{C and Lisp qualifier names} \label{tab:clang.ctypes.qual}
\end{table}
\x{double} \x{long-double} \x{float-imaginary} \x{double-imaginary}
\x{long-double-imaginary} \x{float-complex} \x{double-complex}
\x{long-double-complex} \x{va-list} \x{void}
+ \crossproduct\x{{{int}{uint}}{{}{-least}{-fast}}{{8}{16}{32}{64}}{{-t}}}
+ \crossproduct\x{{{int}{uint}}{{ptr}{max}}{{-t}}}
+
A number of symbolic type specifiers for builtin types are predefined as
shown in \xref{tab:codegen.c-types.simple}. These are all defined as if by
@|define-simple-c-type|, so can be used to construct qualified types.
@|ullong| \\ \hlx{v}
@|size_t| & @|size-t| \\ \hlx{}
@|ptrdiff_t| & @|ptrdiff-t| \\ \hlx{v}
+ @|int$n$_t| & @|int$n$-t|
+ (for $n \in \{ @|8|, @|16|, @|32|, @|64| \}$)
+ \\ \hlx{}
+ @|uint$n$_t| & @|uint$n$-t| \\ \hlx{}
+ @|int_least$n$_t| & @|int_least$n$-t| \\ \hlx{}
+ @|uint_least$n$_t| & @|uint_least$n$-t| \\ \hlx{}
+ @|int_fast$n$_t| & @|int_fast$n$-t| \\ \hlx{}
+ @|uint_fast$n$_t| & @|uint_fast$n$-t| \\ \hlx{v}
+ @|intptr_t| & @|intptr-t| \\ \hlx{}
+ @|uintptr_t| & @|uintptr-t| \\ \hlx{}
+ @|intmax_t| & @|intmax-t| \\ \hlx{}
+ @|uintmax_t| & @|uintmax-t| \\ \hlx{v}
@|float| & @|float| \\ \hlx{}
@|double| & @|double| \\ \hlx{}
@|long double| & @|long-double| \\ \hlx{v}
\begin{table}
\begin{tabular}[C]{*2{>{\codeface}l}} \hlx*{hv}
- \thd{\textbf{Class}} & \thd{\textbf{Name format}} \\ \hlx{vhv}
- temporary-name & @<tag> \\
- temporary-argument & sod__a@<tag> \\
- temporary-function & sod__f@<tag> \\
- temporary-variable & sod__v@<tag> \\ \hlx*{vh}
+ \thd{Class} & \thd{Name format} \\ \hlx{vhv}
+ temporary-name & @<tag> \\
+ temporary-argument & sod__a@<tag> \\
+ temporary-function & sod__f@<tag> \\
+ temporary-variable & sod__v@<tag> \\ \hlx*{vh}
\end{tabular}
\caption{Temporary name formats}
\label{tab:codegen.codegen.temps-format}
\def\x#1{\desclabel{var}{#1}}
\x{*sod-ap*} \x{*sod-master-ap*} \x{*null-pointer*}
\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 \\
- {}*null-pointer* & NULL \\ \hlx*{vh}
+ \thd{Variable} & \thd{Name format} \\ \hlx{vhv}
+ {}*sod-ap* & sod__ap \\
+ {}*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}
\begin{table}
\begin{tabular}[C]{ll>{\codeface}l} \hlx*{hv}
\thd{Class name} &
- \thd{Arguments} &
- \thd{Output format} \\ \hlx{vhv}
+ \thd{Arguments} &
+ \thd{Output format}\\ \hlx{vhv}
@|var| & @<name> @<type> @|\&optional| @<init>
& @<type> @<name> @[= @<init>@];
\\ \hlx{v}