jacobly0
562ac8be48
codegen: add support for lowering .field_ptr on a slice
...
Closes #13068
2022-10-12 12:40:59 +03:00
Cody Tapscott
e6ebdcb82e
stage2 LLVM: Use a packed aggregate for union payload init
...
Without the packed qualifier, the type layout that we use to
initialize doesn't match the correct layout of the underlying
storage, causing corrupted data and past-the-end writes.
2022-10-11 15:42:01 -04:00
Veikka Tuominen
40578656e8
Zir: handle ranges in getMultiProng
...
Closes #12890
2022-10-05 17:26:29 +03:00
Veikka Tuominen
2a4e89e0c9
Type: correctly handle ABI align strat for optionals and error unions
...
Closes #12984
2022-09-30 00:46:45 +03:00
kkHAIKE
317cb629fb
Sema: fix resolveInferredErrorSet panic when generic inline function
2022-09-29 14:44:37 +03:00
Veikka Tuominen
8e4d0ae4f5
Sema: avoid generic parameter error in nested function type
...
Related to cd1833044ab7505bc101c85f59889bd3ea3fac80
Closes #12945
2022-09-24 15:15:36 +03:00
Veikka Tuominen
3a5148112d
Sema: avoid using pointerDecl when dealing with slices
...
Closes #12885
2022-09-24 14:43:03 +03:00
Veikka Tuominen
ede3798485
Sema: resolve struct layout in zirStructInit
...
Closes #12911
2022-09-23 17:39:21 +03:00
Veikka Tuominen
8d1fdfc8ed
Sema: preserve volatileness when constructing field pointers
...
Closes #12928
2022-09-23 17:39:06 +03:00
kkHAIKE
183127733c
AstGen: make loop body's ResultLoc .none
...
Fixes #12555
Fixes #12551
Fixes #12455
2022-09-21 20:20:05 +03:00
Veikka Tuominen
541b3e3a31
Sema: check pointer qualifiers before implicit cast
...
Closes #12881
2022-09-20 00:50:13 +03:00
Veikka Tuominen
5e4483fff8
Sema: handle comptime fields in field call bind
...
Closes #12801
2022-09-15 00:50:18 +03:00
Veikka Tuominen
930f904aaa
Sema: resolve lazy align in reifyStruct
...
Closes #12786
2022-09-15 00:48:47 +03:00
Veikka Tuominen
de24cea2cf
Sema: handle empty_struct_value in beginComptimePtrMutation
...
Closes #12794
2022-09-15 00:48:47 +03:00
Andrew Kelley
0a4cfb81bc
Merge remote-tracking branch 'origin/master' into llvm15
2022-09-13 13:50:25 -07:00
Andrew Kelley
f16855b9d7
remove pointless discards
2022-09-12 18:13:24 -07:00
Andrew Kelley
37cdb5dbf9
Merge remote-tracking branch 'origin/master' into llvm15
2022-09-09 10:26:17 -07:00
Veikka Tuominen
c7e45aebaf
llvm: handle pointers in packed structs in more places
...
Closes #12776
2022-09-08 12:51:40 +03:00
Andrew Kelley
b7900de168
Merge remote-tracking branch 'origin/master' into llvm15
2022-09-06 19:45:02 -07:00
riChar
349cf54b32
llvm: fix the type parameter of GlobalAlias
...
Closes 12680
2022-09-04 18:44:45 +03:00
Andrew Kelley
1cb8065a52
skip new behavior tests that do not pass for stage1
2022-08-29 22:58:24 -07:00
martinhath
3fa5415253
Sema: ensure resolveTypeFields is called for optional and error union types
...
We call `sema.resolveTypeFields` in order to get the fields of structs
and unions inserted into their data structures. If it isn't called, it
can happen that the fields of a type is queried before those fields are
inserted into (for instance) `Module.Union.fields`, which would result in
a wrong 'no field named' error.
Fixes : #12486
2022-08-26 11:37:17 +03:00
Andrew Kelley
7453f56e67
stage2: explicitly tagged enums no longer have one possible value
...
Previously, Zig had inconsistent semantics for an enum like this:
`enum(u8){zero = 0}`
Although in theory this can only hold one possible value, the tag
`zero`, Zig no longer will treat the type this way. It will do loads and
stores, as if the type has runtime bits.
Closes #12619
Tests passed locally:
* test-behavior
* test-cases
2022-08-24 22:20:31 -07:00
Veikka Tuominen
62ff8871ed
stage2+stage1: remove type parameter from bit builtins
...
Closes #12529
Closes #12511
Closes #6835
2022-08-22 11:19:20 +03:00
Cody Tapscott
7e07f3d4f9
stage2 astgen: Use rl semantics for @Type
...
Resolves #12430 .
2022-08-13 09:22:25 +03:00
Veikka Tuominen
ff7ec4efb5
Sema: bad union field access safety
2022-07-23 15:40:11 +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
Andrew Kelley
6a3a0fe7ae
Merge remote-tracking branch 'origin/master' into llvm14
2022-07-07 18:25:01 -07:00
Cody Tapscott
cbc85f4516
stage1: Fix seg-fault when slicing string literal with sentinel
2022-07-08 02:14:38 +03:00
Andrew Kelley
9a5c7b4b4d
Merge remote-tracking branch 'origin/master' into llvm14
2022-07-05 16:24:18 -07:00
Andrew Kelley
388520a40b
fix behavior test which was relying on UB
2022-07-05 15:22:19 -07:00
Cody Tapscott
86570b3e2c
stage2: Fix corrupted Type when de-referencing field pointer
2022-07-05 15:02:13 -04:00
joachimschmidt557
960c142060
stage2 ARM: implement basic intCast and error union wrapping
2022-06-25 21:16:51 +02:00
Koakuma
672d6df429
stage2: sparc64: Skip Sema-failing tests for now
2022-06-24 21:19:33 +07:00
Andrew Kelley
83f300218f
upgrade behavior test to stage2 fn ptr semantics
2022-06-09 15:37:16 -07:00
Andrew Kelley
d557dedf6c
add a missing align() to a behavior test
2022-06-08 15:38:15 -07:00
Andrew Kelley
434226c89d
stage2: fix type printing of sub-byte pointers
2022-06-08 15:18:43 -07:00
Jakub Konka
a8bce8f14b
x64: pass behavior test bugs/1381
2022-06-07 19:33:43 +02:00
Andrew Kelley
e9fc58eab7
LLVM: handle extern function name collisions
...
Zig allows multiple extern functions with the same name, and the
backends have to handle this possibility.
For LLVM, we keep a sparse map of collisions, and then resolve them in
flushModule(). This introduces some technical debt that will have to be
resolved when adding incremental compilation support to the LLVM
backend.
2022-06-07 00:47:10 -04:00
Jakub Konka
95966f6fd7
elf+macho: use explicit alignment on decl is specified
2022-06-05 16:46:50 +02:00
Jakub Konka
33826a6a2e
x64: disable misbehaving behavior tests
2022-06-05 10:36:54 +02:00
Andrew Kelley
288e89b606
Sema: fix compiler crash with comptime arithmetic involving @ptrToInt
2022-06-01 16:45:28 -07:00
Veikka Tuominen
94624893d8
disable failing test
2022-06-01 13:06:31 +03:00
joachimschmidt557
ddd5b57045
stage2 AArch64: complete genTypedValue
2022-05-27 16:43:11 -04:00
Andrew Kelley
4994ac18e4
Merge pull request #11733 from Vexu/stage2
...
more misc stage2 fixes
2022-05-27 16:20:49 -04:00
Veikka Tuominen
989c0f55e8
stage2: add test for fixed issue
2022-05-27 10:29:24 +03:00
Andrew Kelley
4751356d7f
clean up some behavior tests
...
* improve names
* properly categorize a couple of bug cases
* mark one as already passing
2022-05-26 21:58:19 -07:00
Luuk de Gram
e252f92b99
wasm: enable 128bit integer behavior tests
2022-05-18 07:43:33 +02:00
Jakub Konka
3b8187072f
Merge pull request #11530 from ziglang/test-harness
...
test: move compare and run tests to new test harness
2022-04-29 08:24:02 +02:00
Jakub Konka
8d5acf7693
test: recursively walk dir with tests
...
Prune incremental tests by moving non-incremental behavior tests to
behavior test suite instead.
2022-04-28 18:35:01 +02:00