Robin Voetter
28e1d82857
spirv: disable failing tests
2023-11-24 01:11:12 +01:00
mlugg
9cf6c1ad11
behavior: work around LLVM bug
...
See #18034
2023-11-19 11:11:50 +00:00
mlugg
9c16b2370d
test: update behavior to silence 'var is never mutated' errors
2023-11-19 09:57:03 +00:00
Andrew Kelley
3fc6fc6812
std.builtin.Endian: make the tags lower case
...
Let's take this breaking change opportunity to fix the style of this
enum.
2023-10-31 21:37:35 -04:00
Andrew Kelley
ecfb18286a
migrate make_ptr_const to new anonymous decl mechanism
...
Instead of creating Module.Decl objects, directly create InternPool
pointer values using the anon_decl Addr encoding.
The LLVM backend needed code to notice the alignment of the pointer and
lower accordingly. The other backends likely need a similar change.
2023-10-21 21:38:41 -04:00
Robin Voetter
faad97edff
spirv: update failing / passing tests
...
Some tests are now failing due to debug info changes, some tests
now pass due to improved compiler functionality.
2023-10-15 20:08:18 +02:00
Xavier Bouchoux
78fe3feedb
tests: enable already passing behaviour tests for self-hosted wasm
...
1611 passed; 262 skipped; 0 failed.
(was: 1543 passed; 330 skipped; 0 failed.)
2023-10-14 12:50:39 +02:00
mlugg
1b672e41c5
InternPool,Sema,type,llvm: alignment fixes
...
This changeset fixes the handling of alignment in several places. The
new rules are:
* `@alignOf(T)` where `T` is a runtime zero-bit type is at least 1,
maybe greater.
* Zero-bit fields in `extern` structs *do* force alignment, potentially
offsetting following fields.
* Zero-bit fields *do* have addresses within structs which can be
observed and are consistent with `@offsetOf`.
These are not necessarily all implemented correctly yet (see disabled
test), but this commit fixes all regressions compared to master, and
makes one new test pass.
2023-09-21 14:48:41 -07:00
Andrew Kelley
8219711063
disable behavior tests regressed by LLVM 17
...
See #16844
See #16845
See #16846
See #16848
2023-09-19 09:37:50 -07:00
Andrew Kelley
4f6013bf50
add behavior test for sub-aligned field access
...
The workaround in std.zig.Server remains because the C backend is not
passing the new test.
see #14904
2023-08-01 00:39:30 -07:00
Jacob Young
9831f27238
cbe: get behavior tests running on arm
...
Specifically without linking libc.
2023-07-31 01:58:10 -04:00
mlugg
f26dda2117
all: migrate code to new cast builtin syntax
...
Most of this migration was performed automatically with `zig fmt`. There
were a few exceptions which I had to manually fix:
* `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten
* `@truncate`'s fixup is incorrect for vectors
* Test cases are not formatted, and their error locations change
2023-06-24 16:56:39 -07:00
Eric Joldasov
50339f595a
all: zig fmt and rename "@XToY" to "@YFromX"
...
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-06-19 12:34:42 -07:00
Eric Joldasov
d884d7050e
all: replace comptime try with try comptime
...
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2023-06-13 23:46:58 +06:00
Luuk de Gram
1042deb86f
enable passing behavior tests
2023-05-31 18:04:33 +02:00
Robin Voetter
65157d30ab
spirv: ptr_elem_val
...
Implements the ptr_elem_val air tag. Implementation is unified
with ptr_elem_ptr.
2023-05-20 17:30:23 +02:00
Robin Voetter
37aa343079
spirv: more passing tests
2023-05-20 17:30:22 +02:00
Ali Chraghi
ccc490ef68
setup spirv backend in behavior tests
2023-05-11 20:31:52 +02:00
Jacob Young
50f96c2949
x86_64: fix stack realignment
2023-05-01 19:22:52 -04:00
Jacob Young
894406b9d3
behavior: update passing cbe tests
2023-04-26 19:05:17 -04:00
Jacob Young
6b23a7b61a
behavior: enable a bunch of disabled tests
2023-04-21 16:36:31 -04:00
Jacob Young
83a208c355
x86_64: implement large cmp
2023-04-02 04:49:53 -04:00
Jacob Young
c51930b060
behavior: enable passing behavior tests on stage2_x86_64
2023-03-15 01:04:21 -04:00
Jacob Young
434c6f42ca
behavior: enable passing CBE tests
2023-02-21 09:43:23 -05:00
kcbanner
4a330ab811
target: use 16 byte alignment for 128-bit types on x86 and ofmt .c
2023-01-23 13:48:37 -05:00
kcbanner
1aa2c32055
cbe: fixes for x86
...
- Emit calling convention
- Fix .Naked handling for msvc
- Add teb helper for x86
- Fix 128-bit shl implementation when rhs is >= 64
- Add 128-bit shl tests
2023-01-23 13:48:36 -05:00
kcbanner
6445196fab
tests: disable function alignment test for cbe, add 128-bit atomicrmw tests
2023-01-01 16:44:29 -05:00
Andrew Kelley
74718a1183
disable failing CBE behavior tests failing on aarch64-windows
...
Also start to move redundant tests next to each other to make them
slightly more obvious that they need to be cleaned up.
See tracking issue #13876
2022-12-10 16:28:49 -07:00
Koakuma
f9e9ba784f
stage2: sparc64: Skip unimplemented tests
2022-12-10 21:51:46 +07:00
Andrew Kelley
c8aba15c22
remove references to stage1 in behavior tests
...
Good riddance.
2022-12-06 19:06:48 -07:00
Jacob Young
6d1292552e
cbe: implement function alignment
2022-12-03 08:40:08 -05:00
Jakub Konka
07bf4de6a9
aarch64-windows: skip failing align behavior test
2022-11-28 18:10:51 -05:00
Ali Chraghi
f5f1f8c666
all: rename i386 to x86
2022-11-04 00:09:27 +03:30
Jacob Young
1bab854868
cbe: implement 128-bit and fix smaller integer builtins
2022-10-25 05:11:29 -04:00
Jacob Young
feb8f81cd9
cbe: canonicalize types that have the same C type when emitting typedefs
2022-10-25 05:11:29 -04:00
Jacob Young
6a4266d62a
cbe: fix infinite recursion on recursive types
2022-10-25 05:11:28 -04:00
Jacob Young
525dcaecba
behavior: enable stage2_c tests that are currently passing
...
Also fix C warnings triggered by these tests.
2022-10-25 05:11:28 -04:00
Cody Tapscott
83e2d3fb37
stage1: Skip new tests that never passed in stage1
...
This gets the behavior tests passing for stage1 again.
2022-10-13 12:53:20 -07:00
r00ster91
8e2aaf6aed
fix(text): hyphenate "runtime" adjectives
2022-10-05 21:33:42 +02:00
Veikka Tuominen
540130650f
Sema: pass calculated offset to elemPtrType in elemPtrSlice
2022-09-20 00:50:13 +03:00
Veikka Tuominen
e584558bd8
Sema: do not use coerceCompatiblePtr for alignCast
...
Closes #12902
2022-09-19 18:34:52 +03:00
Andrew Kelley
cee82c7ce4
improved ABI alignment/size for >= 128-bit integers
...
* riscv64: adjust alignment and size of 128-bit integers.
* take ofmt=c into account for ABI alignment of 128-bit integers and
structs.
* Type: make packed struct support intInfo
* fix f80 alignment for i386-windows-msvc
2022-08-18 20:34:36 -07:00
Andrew Kelley
6e313eb110
stage2: agree with LLVM that @alignOf(u128) is 8
...
on x86_64 and similar targets.
2022-08-18 17:11:32 -07:00
Veikka Tuominen
baf516218e
Sema: don't add union field access safety check for single field unions
2022-07-23 15:40:12 +03:00
Veikka Tuominen
794beafb9c
Sema: validate extern struct field types earlier
...
`validateExternType` does not require the type to be resolved so we can
check it earlier. Only doing it in `resolveTypeFully` lead to worse or
missing compile errors.
2022-07-21 12:21:30 -07:00
Veikka Tuominen
d851b24180
Sema: validate function pointer alignment
2022-07-21 12:21:30 -07:00
joachimschmidt557
960c142060
stage2 ARM: implement basic intCast and error union wrapping
2022-06-25 21:16:51 +02:00
Koakuma
97d35a5147
behaviortest: Skip 'align(N) on functions' on sparc64 for now
2022-06-06 21:17:09 +07:00
Andrew Kelley
288e89b606
Sema: fix compiler crash with comptime arithmetic involving @ptrToInt
2022-06-01 16:45:28 -07:00
Andrew Kelley
b82cccc9e9
Sema: fix alignment of element ptr result type
2022-06-01 15:43:21 -07:00