Commit Graph
162 Commits
Author SHA1 Message Date
gingerBill 3f518fd130 Merge pull request #7602 from corleypc/lifetime-markers
Adds lifetime markers for named locals
2026-09-29 17:44:06 +01:00
Louis Novy 41d3f37fba Fix #5318: procedures passed to $ parameters share an instantiation's name 2026-09-29 10:21:43 -04:00
corleypc 6c5651638c Merge branch 'master' into lifetime-markers 2026-09-29 16:04:59 +03:00
gingerBill 88d2c3f11e Merge branch 'master' into fix-7547 2026-09-29 13:13:47 +01:00
gingerBill 8640b38899 Merge pull request #7661 from louisnovy/fix-swizzle-through-pointer
Fix #7587: full length swizzles through a pointer keeping the pointer type
2026-09-29 13:06:24 +01:00
gingerBill f3ab1d4b3c Merge pull request #7639 from louisnovy/fix-array-programming-with-matrices
Fix #6302: broadcasting arrays of matrices and matrices
2026-09-29 13:05:33 +01:00
Louis Novy adc2059d36 Merge branch 'master' of https://github.com/odin-lang/Odin into fix-swizzle-through-pointer
# Conflicts:
#	tests/issues/run.bat
#	tests/issues/run.sh
2026-09-29 02:27:05 -04:00
Louis Novy e9657d17b6 Cover #5214 in the forwarded $ procedure test 2026-09-28 09:58:59 -04:00
Louis Novy 7b10b43f08 Rename the forwarded $ procedure test after #6951 2026-09-28 09:47:53 -04:00
Louis Novy 35d5998039 Merge branch 'odin-lang:master' into fix-forwarded-poly-proc-param 2026-09-28 09:35:20 -04:00
Louis Novy fc8b49f5f5 Fix the same $ procedure argument generating duplicate instantiations 2026-09-27 10:40:33 -04:00
gingerBill 9924dcebd3 Merge pull request #7629 from Dreamshade-1911/fix/proc-lit-union-variant-compound-lit
Fix #7596 and #7511
2026-09-27 15:01:39 +01:00
Louis Novy d65d743ab7 Fix full length swizzles through a pointer keeping the pointer type 2026-09-26 22:22:42 -04:00
Louis Novy 13988d863a Fix forwarded $ procedure parameters reusing the first instantiation 2026-09-26 22:14:37 -04:00
Louis Novy 9453e0e75e Fix broadcasting arrays of matrices and matrices 2026-09-26 19:39:53 -04:00
corleypc 223e8d921c Merge branch 'master' into lifetime-markers 2026-09-26 13:34:40 +03:00
Fernando Nunes a5e80c7530 fix(checker): record instantiated poly proc on selector when used as a proc value 2026-09-25 07:45:33 -03:00
Fernando Nunes bc68304497 fix #7596 and #7511: proc literal as union variant in compound literal crashes backend 2026-09-25 07:08:01 -03:00
gingerBill f43ecc4210 Merge branch 'master' into lifetime-markers 2026-09-22 22:41:06 +01:00
gingerBill 5335810e1d Merge branch 'master' into fix-7547 2026-09-22 22:37:56 +01:00
Michael Lehenauer 39d00f6ee4 Fix Windows AMD64 no-CRT stack probe support 2026-09-22 20:32:58 +02:00
bplu4t2f 36c1173df6 Fix #7547 2026-09-21 17:52:49 +02:00
alyekypo 23cc994255 fix(checker): keep entity iteration valid across a scope map rehash
`check_scope_decls` iterates a scope's entity map while
`check_entity_decl` can insert into that same scope: a procedure alias
(`f :: e`) goes through `override_entity_in_scope`, which calls
`scope_map_insert`. The map grows at 75% load (12 of 16 slots, then 24
of 32), and `scope_map_insert` grows before it probes for the key, so
even an alias that only replaces an existing value rehashes and
reallocates the table in the middle of the iteration.

`ScopeMapIterator` re-read its map on every step while `end` had
captured the capacity at loop start, so the walk continued over the new
table under the old sentinel: it ran past the end of the reallocated
table and dereferenced whatever followed it as an `Entity *` - a nullptr
dereference for a procedure scope holding exactly 12 or 24 entities - or
it stopped at the stale end index and silently skipped every declaration
that the rehash had moved behind it, which left unused declarations
without any diagnostic at all.

The iterator now snapshots the table pointer and capacity when it is
constructed, so iteration is invariant under any insert or grow and
cannot leave the table it began on. A scope that does not grow behaves
exactly as before: the snapshot points at the same table.

Refs #7598
2026-09-21 13:13:39 +00:00
corley bac6130710 lifetime markers for named locals 2026-09-20 15:55:26 +03:00
Senthilnathan 699973abd6 Merge branch 'master' into fix/location-global-initializer 2026-09-16 18:45:52 +05:30
Senthilnathan ed2d5304d1 fix: #location in global variable initializers 2026-09-16 18:42:10 +05:30
Jeroen van Rijn 0251becedb Revert #6476
PR #6476 "fixed" an issue that didn't exist because it misunderstood this allocator's semantics. What it conluded was an edge case was in fact entirely predictable and desireable behavior for this allocator.

In "fixing" this edge case, it prevented the exact scratch mechanics that sets this allocator apart for its use case.

Reverted.
2026-09-04 23:23:26 +02:00
leo119 24cb1abf29 checker: Do not deduplicate cases in tagless switches
Tagless switch cases are ordered predicates, so distinct constant conditions may fold to the same Boolean value. Restrict duplicate-case tracking to explicitly tagged switches and add positive and negative regression coverage for issue #7421.
2026-08-27 14:53:54 +08:00
gingerBill 34643f30d9 Merge branch 'master' into const_array_broadcast 2026-08-26 08:45:51 +01:00
gingerBill d06ac2fe64 Merge pull request #7428 from mocompute/check-7336
add regression test for #7336
2026-08-26 08:43:06 +01:00
gingerBill dcb66ab09d Merge branch 'master' into const_array_broadcast 2026-08-26 08:42:51 +01:00
gingerBill 7bd6d16d76 Merge pull request #7438 from kalsprite/asm_doc_category
Give asm templates a documentation category instead of a blank header and a null `%s`
2026-08-26 08:41:20 +01:00
kalsprite c3bc5b69ac Merge branch 'master' into asm_doc_category 2026-08-25 23:08:48 -07:00
kalsprite c1aeb47ce5 swizzle target multi-assignment 2026-08-25 22:22:33 -07:00
kalsprite ae549bf34b broadcast a constant into every array level 2026-08-25 21:47:02 -07:00
mo 2d1253e3e6 add regression test for #7336
Closes #7336.
Fixed by #7327.
2026-08-26 15:08:01 +12:00
gingerBill 2214d90997 Merge branch 'master' into bool_comparison_normalise 2026-08-25 15:31:19 +01:00
gingerBill 771cbfa31a Merge pull request #7439 from ssenthilnathan3/fix/proc-literal-type-canonicalization
Fix canonical names for types in procedure literals
2026-08-25 15:12:32 +01:00
Senthilnathan 559ed487e6 fix: canonical names for types in procedure literals 2026-08-25 14:41:48 +05:30
kalsprite 4ecaa7dfd9 normalize bool cmp 2026-08-24 18:34:59 -07:00
Jeroen van Rijn 66f9dbca8a Merge branch 'master' into bool_be_conversion 2026-08-24 18:31:30 -07:00
kalsprite c3bfbea235 big endian bool cmp 2026-08-24 18:15:01 -07:00
kalsprite 301baf0b88 remove faulty tests 2026-08-24 17:46:55 -07:00
gingerBill 805fc07854 Fix indentation of run.sh 2026-08-24 14:13:28 +01:00
gingerBill cebceb9bb2 Merge branch 'master' into asm_rip_width 2026-08-24 09:31:54 +01:00
gingerBill 48daf8e511 Merge pull request #7431 from kalsprite/asm_named_register_slot
Reject asm operands in slots only a named hardware register can fill
2026-08-24 09:30:20 +01:00
kalsprite b875baea08 asm template doc category 2026-08-24 00:55:16 -07:00
kalsprite 40fd892cf5 Reject a named asm template used as a value instead of aborting the compiler 2026-08-24 00:27:26 -07:00
kalsprite b6c64c28b5 Diagnose in an asm template instead of aborting with SIGILL 2026-08-23 22:36:57 -07:00
kalsprite deb45f3e6a asm named slots 2026-08-23 21:34:31 -07:00