Commit Graph

5676 Commits

Author SHA1 Message Date
Harold Brenes be2e4dec7d Resolve other TODOs 2025-05-03 13:06:57 -04:00
Jeroen van Rijn 9681d88cd3 Fix #5107
Fixes #5107 by checking whether `result_count` is non-zero before indexing `type->Proc.results->Tuple.variables`.
2025-05-03 14:42:20 +02:00
Harold Brenes fc082f5ea5 Remove some TODO. Leave important note 2025-05-03 03:21:03 -04:00
Harold Brenes 6d18560ca3 Move unconditionally exporting Objective-C methods to the right location 2025-05-03 03:09:31 -04:00
Harold Brenes cf3830a6a8 Fix checker errors. 2025-05-03 03:09:31 -04:00
Harold Brenes 33d37c72f9 Register all classes unconditionally 2025-05-03 03:09:31 -04:00
Harold Brenes a00b91577d Prevent multiple uses of the same Objective-C class name 2025-05-03 03:09:30 -04:00
Harold Brenes 5f0b47c373 Implement all checker specification for Objective-C class implementations and objc_ivar_get intrinsic 2025-05-03 00:59:33 -04:00
Jeroen van Rijn 30c6fea9e9 Allow polymorphic #simd array as return type 2025-05-02 15:38:43 +02:00
gingerBill 19fe75f020 Merge pull request #5098 from laytan/fix-nan-comparisons
fix variable NaN comparisons
2025-05-02 13:00:42 +01:00
gingerBill 777c33a9a1 Merge pull request #5102 from Lperlind/attribute-no-sanitize-address
Add attribute @(no_sanitize_address)
2025-05-01 12:16:10 +01:00
Lucas Perlind 5c73b4ef58 Add attribute @(no_sanitize_address)
The purposes of this attribute is to let procedures opt-out of being
instrumented with asan. Typically an allocator that includes 'in-band'
meta-data will be accessing poisoned values (such as tlsf).

Making asan work with these allocators becomes very challenging so
just being to ignore asan within specific allocator procedures
makes it easier to reason and removes the need to temporarily
poison and unpoison allocator data.
2025-05-01 20:42:21 +10:00
Harold Brenes 0746127654 Minor fixes in data type usage and style. 2025-04-30 22:16:53 -04:00
Harold Brenes 1505edef01 Change ivar offsets from u32 to (odin base type) int/native pointer size. 2025-04-30 22:09:33 -04:00
Harold Brenes dc8692b504 Use correct alignment value for class_addIvar. 2025-04-30 21:52:29 -04:00
Harold Brenes 998ed79738 Go back to objc_ivar_get instead of ivar_get. 2025-04-30 20:43:05 -04:00
Harold Brenes c2dfc4b749 Cleanup ivar generation for selector expressions.
Cleanup ObjC superclass resolution.
2025-04-30 20:32:34 -04:00
Harold Brenes abfbb2f9ed Use basic name instead of raw_name for type encoding complex and quats. 2025-04-30 20:32:28 -04:00
Harold Brenes 668a9a89b0 Complete lb_get_objc_type_encoding() implementation 2025-04-30 20:32:14 -04:00
Harold Brenes 5097e98da2 Better Objective-C object superclass cycle check 2025-04-30 20:32:05 -04:00
Harold Brenes 2dc5653fd1 Name fixes 2025-04-30 20:31:54 -04:00
Laytan Laats 396a18efce fix variable NaN comparisons 2025-04-30 20:04:24 +02:00
Laytan Laats 9fb9382449 fixes assigning null as a type if it's an alias but the base type isn't resolved yet
It's a bit of a band aid fix because the field will get the type of the
alias, not the base type, but that was already the case before #5045 so
it's forward progression.

Closes #5092
Fixes #5061
2025-04-30 19:39:38 +02:00
gingerBill 0de802d388 All N-valued (N>=2) expressions in or_else expressions 2025-04-29 17:39:28 +01:00
Lucas Perlind 51d427f424 Remove vet explicit allocators from cli 2025-04-28 19:33:37 +10:00
Harold Brenes 89533f49e4 Fix more styling and minor issues 2025-04-27 23:05:17 -04:00
Harold Brenes f3923ed666 Fix indentations
Fix Objective-C wrapper procs not forwarding return value
2025-04-27 22:55:53 -04:00
Harold Brenes 6c9c239a5e Fix styling issues 2025-04-27 22:55:53 -04:00
Lucas Perlind 65b4c793f0 Add -vet-explicit-allocators
This vet flag will make it so that allocators must be explicitly used
in places where context.allocator and context.temp_allocator are a
procedure parameter.

The goal of this flag is to prevent using the context.allocator in
cases where a different allocator was meant to be used.
Some code bases default context.allocator to nil/panic allocator
to catch this at runtime. This effectively makes it a compile
time error instead.
2025-04-27 22:47:03 +10:00
Jeroen van Rijn d463aba7d1 Warn if someone imports the same case-folded path twice 2025-04-27 14:32:26 +02:00
Barinzaya 9284ebb5e8 Add missing cast to global/static var alignments. 2025-04-24 14:35:00 -04:00
Barinzaya b41a776027 Correctly align global and static variables.
This can be important if matrices or SIMD vectors are being used in
global or static variables, as otherwise it may result in crashes due to
aligned instructions accessing misaligned variables.
2025-04-24 14:21:21 -04:00
Harold Brenes 974a197ce1 Allow the class's ivar to be used as a context provider receiver as well. 2025-04-23 02:06:01 -04:00
Harold Brenes 47abea1229 Add support for Objective-C method implementation with Odin calling convention.
Use @objc_context_provider to provide a context for a type.
2025-04-23 02:05:51 -04:00
Harold Brenes 730c844fc6 Fix bug in @encode implementation. 2025-04-23 02:05:43 -04:00
Harold Brenes 53adff38f0 Fixes to Ivar pseudo fields. 2025-04-23 02:05:33 -04:00
Harold Brenes bca02f81cd Include the ivar in the Objective-C class unconditionally of it being used or not.
Allow pseudo-fields for ivar access.
2025-04-22 19:18:53 -04:00
Harold Brenes b3b4d501ca Fix ivar in multi-module mode. 2025-04-21 02:43:16 -04:00
Harold Brenes a3de9c8de4 Add initial support for Objective-C class implementation 2025-04-20 21:53:46 -04:00
Laytan 8efeaef40b fix not resolving to alias in a recursive declaration 2025-04-16 22:55:25 +02:00
gingerBill 3dcc22fa6d Change hashing rules for float-like types to make 0 == -0 2025-04-16 10:52:35 +01:00
gingerBill 6045955c88 More improvements doc writer name canonicalization 2025-04-15 12:35:20 +01:00
gingerBill b2ca76a76a Improve name canonicalization rules for the doc writer 2025-04-15 12:07:58 +01:00
gingerBill cfb8cc709c Merge branch 'master' of https://github.com/odin-lang/Odin 2025-04-15 11:51:05 +01:00
gingerBill 39363c4018 Improve name canonization rules for doc writer 2025-04-15 11:50:59 +01:00
Jeroen van Rijn 2d5b85f9f9 Merge pull request #5038 from mtarik34b/noteq-comparison-for-nan-must-be-true
Ensure `NaN != any_float_value` evaluates to true for constant NaN values
2025-04-15 12:29:17 +02:00
gingerBill 2d4cb79baa Fix SysV ABI bug 2025-04-15 11:26:41 +01:00
mtarik34b 1d2adbb3c6 Remove reference to git issue 2025-04-15 05:26:36 +02:00
mtarik34b 313d7d84bc Ensure NaN != any_float_value evaluates to true for constant NaN values 2025-04-15 05:00:36 +02:00
Jeroen van Rijn 32c9f6d13a Remove bit_field -> bit_set warning.
The "This 'bit_field' might be better expressed as a 'bit_set' since all of the fields are booleans, of 1-bit in size, and the backing type is an integer" warning is imperfect. Disable it for now.
2025-04-12 14:01:18 +02:00