Veikka Tuominen
d9fe5ba7f8
Sema: add error for too big packed struct
2022-10-27 01:31:18 +03:00
Veikka Tuominen
4ac8ec4c5c
AstGen: fix refing inferred allocs
...
Closes #13285
2022-10-27 01:31:18 +03:00
Veikka Tuominen
4fc944dde8
translate-c: fix redefinition of label on left recursive comma operator
...
Closes #13239
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
Veikka Tuominen
dd437ae399
stage2: optimize size of optional slices
2022-10-27 01:31:17 +03:00
Veikka Tuominen
b12a5cea75
remove test case triggering generic deletion bug
...
This test should be restored once the underlying issue is resolved (with the typo fixed).
2022-10-27 01:31:05 +03:00
Hadrien Dorio
9db293492b
make a .rsp file for zig clang
...
same as std.build.LibExeObjStep.make() for `zig build-exe`
closes #12419
2022-10-26 23:50:51 +02:00
Luuk de Gram
2f41109cc4
test/link: add Wasm linker tests for features
...
Adds a test for inferring features based on a different object file.
Also provides a test case where cpu features are explicitly set on
a library where the end result will output said target features.
2022-10-25 20:48:08 +02:00
Jacob Young
e20d2b3151
cbe: fix floating point builtins
2022-10-25 07:02:06 -04:00
Jacob Young
3d22327b23
cbe: enable test fixed by #13296
2022-10-25 05:43:00 -04:00
Jacob Young
94425fe46e
cbe: improve floating point type support
2022-10-25 05:22:55 -04:00
Jacob Young
6021edd7ce
cbe: add support for all float literals types
2022-10-25 05:22:55 -04:00
Jacob Young
54326cc554
cbe: implement field_parent_ptr
2022-10-25 05:11:29 -04:00
Jacob Young
361035fe7a
cbe: implement cmp_lt_errors_len
2022-10-25 05:11:29 -04:00
Jacob Young
e470cf361f
cbe: update test cases
2022-10-25 05:11:29 -04:00
Jacob Young
ab468d57e3
cbe: implement packed structs
...
Sometimes you have to break a test to make progress :)
2022-10-25 05:11:29 -04:00
Jacob Young
15df64ade8
std: add cbe hacks to more targets
...
These are needed because clang doesn't support anything in naked
functions, not even assembly register inputs.
2022-10-25 05:11:29 -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
6921b0a850
cbe: implement some float ops
2022-10-25 05:11:29 -04:00
Jacob Young
b48417aed2
cbe: misc fixes
2022-10-25 05:11:29 -04:00
Jacob Young
1dd4a6102f
cbe: implement global assembly
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
87d432328e
cbe: implement aggregate_init of struct
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
5eafc10bf4
cbe: fix global access fix
2022-10-25 05:11:29 -04:00
Jacob Young
c126a1018e
cbe: implement more asm features
2022-10-25 05:11:28 -04:00
Jacob Young
a12535f501
cbe: fix global access
2022-10-25 05:11:28 -04:00
Jacob Young
f399dd107a
cbe: implement tag name
2022-10-25 05:11:28 -04:00
Jacob Young
40b5bb7161
cbe: fix loads and stores of 0-bit types
2022-10-25 05:11:28 -04:00
Jacob Young
962f33ee11
cbe: implement airUnionInit
2022-10-25 05:11:28 -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
45c667eb21
behavior: fix redefined exports
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
Jacob Young
6f3654ad69
c: implement @errorName
2022-10-25 05:11:28 -04:00
Jacob Young
c8d0e71de6
c: fix mangling of error names
...
Closes #12751
2022-10-25 05:11:28 -04:00
Jacob G-W
5aef54cbc8
additional fixes for Plan9
...
with this, the tests should pass
2022-10-24 17:01:26 -04:00
Jacob G-W
c6fb798740
Revert "remove plan9 test coverage": Plan9 now works :^)
...
This reverts commit 67db2b85b771d8b0f9d765922951c31fce9c8cc2.
2022-10-24 16:53:12 -04:00
Andrew Kelley
04472af328
Merge pull request #13251 from Vexu/c-abi
...
implement ARM C ABI, separate C ABI tests from standalone tests
2022-10-23 12:16:58 -07:00
Veikka Tuominen
f2a7aba586
x86_64 llvm: correct lowering of ptr sized float struct
...
Closes #13211
2022-10-22 22:00:59 +03:00
Veikka Tuominen
3f41979061
replace some panics with try in C ABI tests
2022-10-22 14:52:26 +03:00
Veikka Tuominen
5e0b4836a1
stage2: implement RISCV C ABI
2022-10-22 14:52:26 +03:00
Veikka Tuominen
8fa91939a8
build.zig: separate C ABI tests from standalone tests
2022-10-22 11:31:41 +03:00
Veikka Tuominen
12a2ccfb45
make C ABI tests compile on powerpc
2022-10-22 11:31:41 +03:00
Veikka Tuominen
031c768cc8
add C ABI tests for simd vectors
2022-10-22 11:31:41 +03:00
Cody Tapscott
74b9cbd895
stage2: Skip test exposing #13175
...
This PR (#12873 ) in combination with this particular test exposed
a pre-existing bug (#13175 ).
This means that the test for #13038 has regressed
2022-10-21 12:40:33 -07:00
Cody Tapscott
d060cbbec7
stage2: Keep error return traces alive when storing to const
...
This change extends the "lifetime" of the error return trace associated
with an error to continue throughout the block of a `const` variable
that it is assigned to.
This is necessary to support patterns like this one in test_runner.zig:
```zig
const result = foo();
if (result) |_| {
// ... success logic
} else |err| {
// `foo()` should be included in the error trace here
return error.TestFailed;
}
```
To make this happen, the majority of the error return trace popping logic
needed to move into Sema, since `const x = foo();` cannot be examined
syntactically to determine whether it modifies the error return trace. We
also have to make sure not to delete pertinent block information before it
makes it to Sema, so that Sema can pop/restore around blocks correctly.
* Why do this only for `const` and not `var`? *
There is room to relax things for `var`, but only a little bit. We could
do the same thing we do for const and keep the error trace alive for the
remainder of the block where the *assignment* happens. Any wider scope
would violate the stack discipline for traces, so it's not viable.
In the end, I decided the most consistent behavior for the user is just
to kill all error return traces assigned to a mutable `var`.
2022-10-21 12:40:29 -07:00