gingerBill
cfde9fb9cb
Tidy up check_escape.cpp
2026-10-07 20:02:04 +01:00
gingerBill
3f1a87dd33
Treat the fields brought in by 'using' on locals and in 'using' statements as part of what it was applied to in the escape analysis
2026-10-07 19:42:29 +01:00
gingerBill
e512fe07d3
Add -vet-nil-deref, reporting dereferences and calls through what is nil on every path reaching them
2026-10-07 19:36:37 +01:00
gingerBill
9ee4b3f497
Cut the escape call graph's setup by numbering, counting and releasing in parallel, and finding callers alongside the groups
2026-10-07 18:16:36 +01:00
gingerBill
cb3165cd2c
Settle recursive escape groups one member at a time after a first parallel round
2026-10-07 18:00:18 +01:00
gingerBill
969b84fb9c
Build the escape call graph's edges in parallel
2026-10-07 17:51:05 +01:00
gingerBill
20c603392e
Analyse the escape summaries in the strongly connected components of the recorded calls, so the results are deterministic
2026-10-07 17:44:59 +01:00
gingerBill
01dfa7756b
Analyse the escape summaries in the call graph's strongly connected components, so the results are deterministic
2026-10-07 17:26:20 +01:00
gingerBill
5659d485cb
Merge the escape analysis's stores of the caller's memory from different calls
2026-10-07 16:31:08 +01:00
gingerBill
23d057c01f
Use a specialization's full type for its escape summary in calls
2026-10-07 16:05:56 +01:00
gingerBill
50810e6717
Add store summaries to the escape analysis
2026-10-07 15:44:07 +01:00
gingerBill
689237a918
Stop dropping messages and formatted strings longer than 4096 bytes
2026-10-07 15:13:58 +01:00
gingerBill
1b65f143cb
Stop dropping error messages longer than 4096 bytes
2026-10-07 15:11:30 +01:00
gingerBill
bc56d95e63
Add interprocedural summaries to the escape analysis, analysing callees on demand
2026-10-07 15:08:05 +01:00
gingerBill
a720b0699e
Release nested procedures before running the escape analysis on their parent
2026-10-07 13:58:15 +01:00
gingerBill
edeca40dd6
Skip the escape analysis for an executable's entry point, suggest clearing stores, and add type_zero_value_string
2026-10-07 13:41:32 +01:00
gingerBill
5522d18745
Skip the escape analysis for an executable's entry point and suggest clearing stores
2026-10-07 13:38:22 +01:00
gingerBill
8a8ffa27f1
Replace check_unsafe_return by deciding unsafe returns in the escape analysis
2026-10-07 13:16:57 +01:00
gingerBill
8ea02cc733
Add flow-based escape analysis of stack memory, reported as warnings
2026-10-07 13:08:22 +01:00
gingerBill
5b829ae182
Group the per-thread global entity checking state into GlobalGroupContext
2026-10-07 11:29:21 +01:00
gingerBill
e702482f38
Group the per-thread error state into ErrorContext
2026-10-07 11:25:53 +01:00
gingerBill
86502ed7ec
Show where parapoly procedures and records were instantiated in errors within them
2026-10-07 11:08:13 +01:00
gingerBill
09726b1ee0
Merge pull request #7761 from RoryO/master
...
LLVMBr opcode split to LLVMCondBr and LLVMUncondBr in LLVM >=23
2026-10-07 10:22:56 +01:00
Matthias Huerbe
9a4522d2dd
Make @(static) locals visible in the PDB
2026-10-07 08:16:27 +00:00
Jeroen van Rijn
ed3dc46dfb
Merge pull request #7795 from corleypc/temp-cpy-fix
...
Fixes regressions caused by temp copy of underaligned values
2026-10-06 11:57:13 -07:00
Karl Zylinski
05d4c79dc5
Parapoly: Fix regression where proc group containing parapoly enumerated array specialization was marked as ambigious.
2026-10-06 20:42:29 +02:00
Mihail Moskov
55c6cf3dea
fixes regressions at sites needing true address caused by temp copy
2026-10-06 20:21:05 +03:00
gingerBill
0de10624fe
Name single-module output after the main package when -out is a directory
2026-10-06 18:14:29 +01:00
gingerBill
3956328809
Merge branch 'master' of https://github.com/odin-lang/Odin
2026-10-06 17:42:52 +01:00
gingerBill
0a076fa8fe
Fix nested procedure types in results losing names
2026-10-06 17:42:40 +01:00
gingerBill
25946eb2f1
Merge pull request #7789 from Barinzaya/bounds_check_with_context
...
Context-aware bounds check handling
2026-10-06 15:55:45 +01:00
Jeroen van Rijn
84bc3fc210
Merge pull request #7788 from A1029384756/windows-cross-compile
...
[windows-cross-compile] add missing `help` message
2026-10-06 07:08:36 -07:00
A1029384756
1c8600caf2
[windows-cross-compile] add missing help message
2026-10-06 09:59:07 -04:00
Barinzaya
8075b343c5
Split bounds check handlers into contextless and with_context.
...
When a `context` is available, the `with_context` variant will be called
and the `context.assertion_failure_proc` will be called, instead of
forcibly trapping. This allows bounds check errors able to be handled by
custom assertion failure procs.
2026-10-06 09:45:36 -04:00
gingerBill
b924d12fd9
Fix bug in the docs writer
2026-10-06 14:18:20 +01:00
gingerBill
e28e60a80c
Point "Expected a comma/semicolon, got a newline" errors just after the previous token
2026-10-05 21:49:35 +01:00
Rory OConnell
57948b15da
LLVMBr opcode split to LLVMCondBr and LLVMUncondBr in LLVM >=23
2026-10-05 12:31:40 -07:00
gingerBill
3300b2c35a
Fix typo with linker section name problem
2026-10-05 18:48:25 +01:00
gingerBill
3b700c4656
Fix merge conflict with the same code
2026-10-05 18:47:24 +01:00
gingerBill
579bc065ea
Merge branch 'master' into bill/llvm-backend-improvements
2026-10-05 18:40:31 +01:00
gingerBill
20b3fdcd58
Accept an explicit -linker:radlink on Windows again, write no BOM for the default radlink's response file, and only require link.exe for -linker:msvc
2026-10-05 18:27:58 +01:00
gingerBill
881ad21336
Walk the global graph's declarations in small batches taken by a task for each thread, and fill its edges from the walk in parallel rather than through a serial list of edges
2026-10-05 17:26:41 +01:00
gingerBill
8c4d65289e
Write each package's doc entries in the natural order of their names to make the output deterministic
2026-10-05 16:59:58 +01:00
gingerBill
811658f915
Collect a global foreign block with its file when its attribute values are literals.
2026-10-05 16:55:03 +01:00
gingerBill
0e26e26a0d
List each file's possible type aliases as they are collected, gather the global entities whilst they are corrected, and only destroy the checker once parsing reported no errors
2026-10-05 16:36:17 +01:00
gingerBill
6aac694c18
Export the entities and scan for global whens and foreign blocks while the import graph and package order are being made
2026-10-05 16:12:20 +01:00
gingerBill
1669cf6192
Collect each package's entities as soon as it has parsed all of its files; hold any non-syntactic errors until all of the parsing is done and only report if there are no parsing errors
2026-10-05 15:40:33 +01:00
gingerBill
b2b03b68aa
Create the file scopes, imports, and canning of whens in parallel
2026-10-05 15:08:35 +01:00
gingerBill
4ad95d54b8
Gather the global entities in order from a list for each file instead of sorting them all by only sorting the files with some added out of order
2026-10-05 14:43:36 +01:00
gingerBill
b818d45e63
Keep each global group node's index on the entity itself
2026-10-05 14:29:54 +01:00