aboutsummaryrefslogtreecommitdiff
path: root/src/docs_writer.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-18 19:26:21 +0100
committergingerBill <bill@gingerbill.org>2021-04-18 19:26:21 +0100
commit4282688e6057ba491db8b8d6121c09cd12501094 (patch)
tree39e5e978165a3a2549186edfeab13bfbcf81d96a /src/docs_writer.cpp
parent9b3fb25a41ad21949c21253e1dae87b162ed400f (diff)
Add calling_convention to odin-doc Type format
Diffstat (limited to 'src/docs_writer.cpp')
-rw-r--r--src/docs_writer.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/docs_writer.cpp b/src/docs_writer.cpp
index 0ae7487fa..2a975e5d0 100644
--- a/src/docs_writer.cpp
+++ b/src/docs_writer.cpp
@@ -675,6 +675,33 @@ OdinDocTypeIndex odin_doc_type(OdinDocWriter *w, Type *type) {
types[0] = odin_doc_type(w, type->Proc.params);
types[1] = odin_doc_type(w, type->Proc.results);
doc_type.types = odin_write_slice(w, types, gb_count_of(types));
+
+ String calling_convention = {};
+ switch (type->Proc.calling_convention) {
+ case ProcCC_Invalid:
+ case ProcCC_Odin:
+ // no need
+ break;
+ case ProcCC_Contextless:
+ calling_convention = str_lit("contextless");
+ break;
+ case ProcCC_CDecl:
+ calling_convention = str_lit("cdecl");
+ break;
+ case ProcCC_StdCall:
+ calling_convention = str_lit("stdcall");
+ break;
+ case ProcCC_FastCall:
+ calling_convention = str_lit("fastcall");
+ break;
+ case ProcCC_None:
+ calling_convention = str_lit("none");
+ break;
+ case ProcCC_InlineAsm:
+ calling_convention = str_lit("inline-assembly");
+ break;
+ }
+ doc_type.calling_convention = odin_doc_write_string(w, calling_convention);
}
break;
case Type_BitSet: