Commit Graph
7342 Commits
Author SHA1 Message Date
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