diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2026-01-24 13:55:41 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-24 13:55:41 +0000 |
| commit | cc4a7ec11c0ea30d493eaabc131edfe70811bf21 (patch) | |
| tree | 54c0ffd7f84560f91f3b90fdbfc14dc835375339 /src/parser.cpp | |
| parent | cd684ed7a06173cd6164b9511f467a4e7828f3a0 (diff) | |
| parent | a9a65b5377e8146edc35040a1faedd38c425d6cf (diff) | |
Merge pull request #6166 from laytan/vet-file-tags-in-addition-to-command-line
make #+vet tags always work in addition to command line flags
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index fe864a6bc..c1a7fe0ff 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -6369,14 +6369,12 @@ gb_internal u64 parse_vet_tag(Token token_for_pos, String s) { GB_ASSERT(string_starts_with(s, prefix)); s = string_trim_whitespace(substring(s, prefix.len, s.len)); + u64 vet_flags = build_context.vet_flags; + if (s.len == 0) { - return VetFlag_All; + vet_flags |= VetFlag_All; } - - u64 vet_flags = 0; - u64 vet_not_flags = 0; - while (s.len > 0) { String p = string_trim_whitespace(vet_tag_get_token(s, &s, /*allow_colon*/false)); if (p.len == 0) { @@ -6389,16 +6387,16 @@ gb_internal u64 parse_vet_tag(Token token_for_pos, String s) { p = substring(p, 1, p.len); if (p.len == 0) { syntax_error(token_for_pos, "Expected a vet flag name after '!'"); - return build_context.vet_flags; + return vet_flags; } } u64 flag = get_vet_flag_from_name(p); if (flag != VetFlag_NONE) { if (is_notted) { - vet_not_flags |= flag; + vet_flags = vet_flags &~ flag; } else { - vet_flags |= flag; + vet_flags |= flag; } } else { ERROR_BLOCK(); @@ -6416,21 +6414,11 @@ gb_internal u64 parse_vet_tag(Token token_for_pos, String s) { error_line("\tcast\n"); error_line("\ttabs\n"); error_line("\texplicit-allocators\n"); - return build_context.vet_flags; + return vet_flags; } } - if (vet_flags == 0 && vet_not_flags == 0) { - return build_context.vet_flags; - } - if (vet_flags == 0 && vet_not_flags != 0) { - return build_context.vet_flags &~ vet_not_flags; - } - if (vet_flags != 0 && vet_not_flags == 0) { - return vet_flags; - } - GB_ASSERT(vet_flags != 0 && vet_not_flags != 0); - return vet_flags &~ vet_not_flags; + return vet_flags; } gb_internal u64 parse_feature_tag(Token token_for_pos, String s) { |