Commit Graph

6067 Commits

Author SHA1 Message Date
gingerBill
a936f3fb7d Comment out t->Struct.are_offsets_being_processed.load() 2026-02-02 11:41:33 +00:00
gingerBill
8594deb4e1 Move return true; to after the if check 2026-02-02 11:40:30 +00:00
gingerBill
2bbedda61c Remove unneeded mutex in hash_exact_value 2026-02-02 11:39:57 +00:00
gingerBill
041ebdd8f6 Add parent mutex lock for scope_insert_with_name 2026-02-02 11:39:17 +00:00
gingerBill
adf56ced22 Merge pull request #6215 from odin-lang/bill/fix-data-races-2026-02
Fix numerous data races
2026-02-02 11:37:19 +00:00
gingerBill
b9e4007cb1 Merge pull request #6216 from odin-lang/bill/debug-info-fixes
Debug Info Fixes
2026-02-02 11:33:21 +00:00
gingerBill
c85af4a454 Fix #6202 2026-02-02 11:27:41 +00:00
gingerBill
b183b1219c Revert mutex_lock logic 2026-02-02 11:25:49 +00:00
gingerBill
63c4faca75 Fix positions for debug locations in defer, loops, and switch clauses 2026-02-02 11:19:00 +00:00
gingerBill
fde90931de Add case for completeness 2026-02-02 11:16:05 +00:00
gingerBill
3dccd4e3ad Fix debug info 2026-02-02 11:15:34 +00:00
gingerBill
e014181abf Move values construction to after padding has been set 2026-02-02 11:12:42 +00:00
gingerBill
21509ae3f4 Fix mutex_lock 2026-02-02 11:06:16 +00:00
gingerBill
ad2122a7fc Move alignas to before name 2026-02-02 11:05:30 +00:00
gingerBill
c7f40b8b8f Use mutex striping for add_type_and_value 2026-02-02 11:03:50 +00:00
gingerBill
acabae8644 Make Entity.parent_proc_decl atomic 2026-02-02 10:58:25 +00:00
gingerBill
8a92ba74fc Make defer_use_checked and where_clauses_evaluated atomic 2026-02-02 10:56:30 +00:00
gingerBill
74347f3069 Make Entity.code_gen_* atomic 2026-02-02 10:53:18 +00:00
gingerBill
d086a16f64 Make atomic variant_block_size and tag_size in TypeUnion 2026-02-02 10:52:14 +00:00
gingerBill
cb50725b86 Use compare_exchange_strong mutex_lock on non-windows sytems 2026-02-02 10:50:30 +00:00
gingerBill
20a7a645c2 Mock out TSAN_* usage in thread_pool.cpp 2026-02-02 10:48:55 +00:00
gingerBill
2608f92fee Use std::atomic for Ast.viral_state_flags and Ast_Ident.entity 2026-02-02 10:48:30 +00:00
Jesse Meyer
1a7f78b665 Add ThinLTO support via -lto:thin and -lto:thin-files flags
- Add -lto:thin and -lto:thin-files CLI flags with validation
- Emit LLVM bitcode (.bc) instead of object files when LTO is enabled
- Pass -flto=thin and -flto-jobs to clang/lld linkers
- Guard linkage corrections to skip declarations without definitions
  (required for LTO where declarations appear across modules)
- Allow module-per-file with LTO even at higher optimization levels

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 09:04:53 -05:00
gingerBill
19b545e7cb Merge branch 'master' into bill/feature-using-stmt 2026-01-30 10:49:55 +00:00
gingerBill
7125782bd2 Support -linker:mold on FreeBSD and NetBSD; Remove -use-lld and -use-radlink 2026-01-30 10:46:35 +00:00
Faker-09
30ef01ee8d Merge branch 'odin-lang:master' into vet_flags 2026-01-29 11:35:24 -05:00
gingerBill
67541434f4 Remove else check for untyped to typed 2026-01-29 11:58:37 +00:00
gingerBill
07d814d9cf Add struct #simple to force a struct to use simple comparison if all of the fields "nearly simply comparable". 2026-01-29 10:49:26 +00:00
gingerBill
4a7fb46667 Complete is_type_simple_compare switch rules 2026-01-29 09:21:31 +00:00
Shane Shrybman
f6322b4b31 Fix for vet flags. All combinations of vet flags on the command line and top of file are working 2026-01-28 14:18:30 -05:00
gingerBill
37c2f68824 Allow #unroll for arrays of fixed length which are not constants 2026-01-28 15:30:23 +00:00
gingerBill
92bef45781 Fix #6183 2026-01-27 09:44:52 +00:00
gingerBill
7bdd0a80ca Allow for CONSTANT_TYPEID_ARRAY[idx] to be used as a type in certain contexts 2026-01-26 19:31:37 +00:00
gingerBill
27bd72c18a Fix constant indexing within a call that doesn't exist 2026-01-26 19:15:40 +00:00
gingerBill
3586bda6ae Use context.assertion_failure_proc with type assertions when the context is available, otherwise use a trivial trap. 2026-01-26 18:23:29 +00:00
gingerBill
0774b7465f Allow for shortcut to get feature flags from the expression directly assuming it as a file 2026-01-26 15:51:38 +00:00
gingerBill
efdb89afcb Revert dynamic literals feature check 2026-01-26 15:41:15 +00:00
gingerBill
afe4369f6e Add #+feature force-type-assert which overrides -no-type-assert on a per-file basis 2026-01-26 15:37:54 +00:00
gingerBill
83a10e929f Require space after the prefix of #+build style tags 2026-01-26 10:49:24 +00:00
gingerBill
cc4a7ec11c 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
2026-01-24 13:55:41 +00:00
Jeroen van Rijn
cd684ed7a0 Merge pull request #6159 from Barinzaya/fix-const-bitset-contains
Fix `in`/`not_in` on constant `bit_set`s
2026-01-24 14:32:33 +01:00
Jeroen van Rijn
1c529d8cb2 Fix #6165 2026-01-24 14:06:31 +01:00
Laytan Laats
a9a65b5377 make #+vet tags always work in addition to command line flags 2026-01-24 12:59:55 +01:00
Jeroen van Rijn
e0ff16f98c Fix #6126
`ExactValue_Compound` wasn't handled properly.
2026-01-24 10:53:38 +01:00
Barinzaya
5e4895e76d Fixed some issues with in and not_in on constant bit_sets.
This addresses two issues:
- With a `bit_set` having no underlying type and a non-zero lower bound,
  `in` and `not_in` were returning incorrect results when done at
  compile-time.
- With a `bit_set` of more than 128 bits, `in` always returns false on
  values that fall within the upper 64 bits.
2026-01-23 16:19:46 -05:00
CJ
89f6f535db Fix string16 bugs in Mac and Linux 2026-01-24 01:26:36 +09:00
Jeroen van Rijn
ce71227b6b Fix #6130 2026-01-22 15:20:39 +01:00
gingerBill
5072d5c776 Add warning in code generation stage which might cause a possible code gen issue, when non-constant initialization is large 2026-01-22 13:54:53 +00:00
gingerBill
78ed2560d3 Merge branch 'master' of https://github.com/odin-lang/Odin 2026-01-22 13:18:25 +00:00
gingerBill
dc6067a8a9 Unify "mem*.inline" logic to only inline for <=8 bytes on all platforms 2026-01-22 13:18:22 +00:00