| Age | Commit message (Collapse) | Author |
|
Closes #14715
Closes #14783
|
|
At least lldb misbehaves with all these same-named unions, so just
generate a unique name.
|
|
Replace `ArrayList` with `ArrayHashMap` since we want to be able to
remove by element.
|
|
Many `Type`s can correspond to the same `CType`, so this reduces the
number of used locals by 27760 when compiling only-c.
Also, disabled some tests that were only passing by accident and
shouldn't really be considered working.
|
|
Turns out f(...) will be supported one day.
|
|
|
|
It should be Sema's job to check this anyway.
|
|
|
|
|
|
After this, the last MSVC warnings are in behavior/bugs/529.zig:
behavior.c(37971): warning C4133: 'function': incompatible types - from 'A__8479 *' to 'A__8474 *'
behavior.c(37974): warning C4133: 'function': incompatible types - from 'A__8480 *' to 'A__8474 *'
|
|
* Support always_tail and never_tail/never_inline with a comptime callee using clang
* Support never_inline using gcc
* Support never_inline using msvc
Unfortunately, can't enable behavior tests because of the conditional support.
|
|
Removed some backend test skip checks for things disabled in std.
|
|
|
|
* Implement @fieldParentPtr on a union
* Refactor field access to ensure that it is handled consistently
* Remove `renderTypecast` as it is now behaves the same as `renderType`
|
|
|
|
|
|
|
|
|
|
|
|
Adds a new mechanism for `@tagName` function generation that doesn't
piggyback on the removed typedef system.
|
|
This requires manual defines before C99 which may not have stdint.h.
Also have update-zig1 leave a copy of lib/zig.h in stage1/zig.h, which
allows lib/zig.h to be updated without needing to update zig1.wasm.
Note that since the object already existed with the exact same contents,
this completely avoids repo bloat due to zig.h changes.
|
|
|
|
|
|
|
|
|
|
Same as 0577069af5f5deb859762725736537d60c324453 for extern functions.
Closes #14610
|
|
Closes #14056
|
|
link: move ownership of linker atom from frontend to the linkers
|
|
|
|
This API only depends on std.Target and is extremely useful in build
scripts when populating configure files.
|
|
- cbe: Implement linksection support, to support TLS when not linking libc
- cbe: Support under-aligned variables / struct fields
- cbe: Support packed structs (in the C definition of packed)
- windows: Fix regression with x86 _tls_array
- compiler_rt: Add 128-bit atomics to compiler_rt
- tests: Re-enable threadlocal tests on cbe+windows, and llvm+x86
- tests: Re-enable f80 tests that now pass
- ci: change windows ci to run the CBE behaviour tests with -lc, to match how the compiler is bootstrapped
- update zig1.wasm
|
|
|
|
|
|
- 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
|
|
|
|
llvm: implement Stdcall calling convention
|
|
|
|
- add c_abi tests for .Stdcall
- enable (x86|x86_64)-windows-gnu in the c_abi tests
|
|
|
|
Closes #14261
|
|
This is a simple starting version of the optimization described in #168
where the fields are just sorted by order of descending alignment.
|
|
Closes #13830
|
|
|
|
|
|
@bitCast from integer NaN representation to float NaN resulted in
changed bits in float. This only happened with signaled NaN.
- added test for signaled NaN
- added tests for quiet NaN (for completeness)
closes #14198
|
|
Co-authored-by: Veikka Tuominen <git@vexu.eu>
|
|
|
|
|
|
- Add cpuid / getXCR0 functions for the cbe to use instead of asm blocks
- Don't cast between 128 bit types during truncation
- Fixup truncation to use functions for shifts / adds
- Fixup float casts for undefined values
- Add test for 128 bit integer truncation
|
|
- add zig_mul_i128
- render slice structs in static initializers without casts / c99 style init
- add negative numbers and u128 to 128-bit multiply test
|