Jacob Young
071404ff65
cbe: fix optional access
2022-11-01 20:39:05 -04:00
Jacob Young
91fe0b80a2
cbe: fix threadlocal
2022-11-01 20:38:51 -04:00
Jacob Young
a77d89afe3
behavior: enable fixed cbe tests
2022-10-30 15:38:50 -04:00
Jacob Young
48a2783969
cbe: implement optional slice representation change
2022-10-29 05:58:41 -04:00
Andrew Kelley
2991e4a454
Merge pull request #13288 from Vexu/opt-slice
...
Optimize size of optional slices (+ some fixes)
2022-10-27 22:09:17 -04:00
Veikka Tuominen
d03c47bf85
Sema: use runtime_value instead of creating allocs
2022-10-27 21:08:25 -04:00
Veikka Tuominen
4ac8ec4c5c
AstGen: fix refing inferred allocs
...
Closes #13285
2022-10-27 01:31:18 +03:00
Veikka Tuominen
78a7bb108a
llvm: handle namespace like packed structs
...
Closes #13159
Closes #13188
2022-10-27 01:31:18 +03:00
Jacob Young
6021edd7ce
cbe: add support for all float literals types
2022-10-25 05:22:55 -04:00
Jacob Young
1bab854868
cbe: implement 128-bit and fix smaller integer builtins
2022-10-25 05:11:29 -04:00
Jacob Young
8b6a3ba74e
cbe: fix typedef declaration order
2022-10-25 05:11:29 -04:00
Jacob Young
4765294ca4
cbe: get enough things working to support basic programs
...
* Enable advanced start support.
* Enable advanced test_runner support.
* Zig Language Reference's Hello World now works.
2022-10-25 05:11:29 -04:00
Jacob Young
912b84bbad
cbe: fix atomics
2022-10-25 05:11:29 -04:00
Jacob Young
b48417aed2
cbe: misc fixes
2022-10-25 05:11:29 -04:00
Jacob Young
e8bda9eb3a
cbe: implement ptr slice ptr
2022-10-25 05:11:29 -04:00
Jacob Young
5eafc10bf4
cbe: fix global access fix
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
Jacob Young
f81651932a
c: hacks to fix incompatible redeclaration of library function warnings
2022-10-25 05:11:28 -04:00
Cody Tapscott
77720e30aa
Re-factor: Change AstGen.ResultLoc to be a struct
...
This re-factor is intended to make it easier to track what kind of
operator/expression consumes a result location, without overloading the
ResultLoc union for this purpose.
This is used in the following commit to keep track of initializer
expressions of `const` variables to avoid popping error traces
pre-maturely. Hopefully this will also be useful for implementing
RLS temporaries in the future.
2022-10-21 11:22:46 -07:00
Veikka Tuominen
9a52abf3b4
Sema: add missing calls to wip_captures.finalize
...
Closes #13171
2022-10-20 20:11:12 +03:00
Veikka Tuominen
4aaff75c81
Sema: resolve tuple default values before hashing
...
Closes #12488
2022-10-19 01:38:19 +03:00
Veikka Tuominen
6582896ee0
Sema: remove unresolved inferred allocs
...
Closes #2557
2022-10-19 01:38:19 +03:00
Veikka Tuominen
4e134f6dcb
Sema: respect inline call semantics
...
If an argument is comptime-known but shouldn't be create an alloc
to store it in to get a runtime-known value.
2022-10-19 01:38:18 +03:00
Veikka Tuominen
be9a4a1f97
Sema: handle noreturn in boolBr
...
Closes #13112
2022-10-17 18:53:15 +03:00
Jacob Young
cb0e22db4e
llvm: fix lowering of runtime refs to comptime-only decls
...
When we want a runtime pointer to a zero-bit value we use an undef
pointer, but what if we want a runtime pointer to a comptime-only value?
Normally, if `T` is a comptime-only type such as `*const comptime_int`,
then `*const T` would also be a comptime-only type, so anything
referencing a comptime-only value is usually also comptime-only, and
therefore not emitted to the executable.
However, what if instead we have a `*const anyopaque` pointing to a
comptime-only value? Certainly, `*const anyopaque` is a runtime type,
and so we need some runtime value to store, even when it happens to be
pointing to a comptime-only value. In this case we want to do the same
thing as we do when pointing to a zero-bit value, so we use
`hasRuntimeBits` to handle both cases instead of ignoring comptime.
Closes #12025
2022-10-15 14:17:25 -04:00
Jacob Young
400319872b
llvm: fix bug lowering aggregate_init with a byref sentinel
...
Closes #12972
2022-10-15 11:12:04 -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
kkHAIKE
d987bf859e
Sema: add float128IntPartToBigInt to fix compare comptime float with int
2022-10-13 13:11:13 +02:00
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