diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2026-01-22 11:47:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-22 11:47:23 +0100 |
| commit | 3f8a32aeb963e056ac7709c26f05a99fb884ef95 (patch) | |
| tree | 4eed35fa23e9f4c5b7dedc6a355b16f5d3119661 /src/parser.hpp | |
| parent | fb479b3aaec5a9a715bcff7d65498ba18020f4f0 (diff) | |
| parent | 5c09550d383df49a1d29d8f66bc1c45ee3be1136 (diff) | |
Merge branch 'master' into xmlcomment
Diffstat (limited to 'src/parser.hpp')
| -rw-r--r-- | src/parser.hpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/parser.hpp b/src/parser.hpp index 71b61d95f..011330438 100644 --- a/src/parser.hpp +++ b/src/parser.hpp @@ -263,12 +263,17 @@ struct ForeignFileWorkerData { -enum ProcInlining { - ProcInlining_none = 0, - ProcInlining_inline = 1, +enum ProcInlining : u8 { + ProcInlining_none = 0, + ProcInlining_inline = 1, ProcInlining_no_inline = 2, }; +enum ProcTailing : u8 { + ProcTailing_none = 0, + ProcTailing_must_tail = 1, +}; + enum ProcTag { ProcTag_bounds_check = 1<<0, ProcTag_no_bounds_check = 1<<1, @@ -296,6 +301,9 @@ enum ProcCallingConvention : i32 { ProcCC_Win64 = 9, ProcCC_SysV = 10, + ProcCC_PreserveNone = 11, + ProcCC_PreserveMost = 12, + ProcCC_PreserveAll = 13, ProcCC_MAX, @@ -315,6 +323,9 @@ gb_global char const *proc_calling_convention_strings[ProcCC_MAX] = { "inlineasm", "win64", "sysv", + "preserve/none", + "preserve/most", + "preserve/all", }; gb_internal ProcCallingConvention default_calling_convention(void) { @@ -441,6 +452,7 @@ struct AstSplitArgs { Ast *body; \ u64 tags; \ ProcInlining inlining; \ + ProcTailing tailing; \ Token where_token; \ Slice<Ast *> where_clauses; \ DeclInfo *decl; \ @@ -486,6 +498,7 @@ AST_KIND(_ExprBegin, "", bool) \ Token close; \ Token ellipsis; \ ProcInlining inlining; \ + ProcTailing tailing; \ bool optional_ok_one; \ bool was_selector; \ AstSplitArgs *split_args; \ |