r00ster91
17404f8e6e
Sema: emit compile error for comptime or inline call of function pointer
2023-01-31 17:15:34 +02:00
Isaac Freund
23b7d28896
std: restrict mem.span() and mem.len() to sentinel terminated pointers
...
These functions are currently footgunny when working with pointers to
arrays and slices. They just return the stated length of the array/slice
without iterating and looking for the first sentinel, even if the
array/slice is a sentinel terminated type.
From looking at the quite small list of places in the standard
library/compiler that this change breaks existing code, the new code
looks to be more readable in all cases.
The usage of std.mem.span/len was totally unneeded in most of the cases
affected by this breaking change.
We could remove these functions entirely in favor of other existing
functions in std.mem such as std.mem.sliceTo(), but that would be a
somewhat nasty breaking change as std.mem.span() is very widely used for
converting sentinel terminated pointers to slices. It is however not at
all widely used for anything else.
Therefore I think it is better to break these few non-standard and
potentially incorrect usages of these functions now and at some later
time, if deemed worthwhile, finally remove these functions.
If we wait for at least a full release cycle so that everyone adapts to
this change first, updating for the removal could be a simple find and
replace without needing to worry about the semantics.
2023-01-29 15:07:06 -05:00
kcbanner
a9b68308b9
cbe: fixes for tls, support for not linking libc, and enabling tests
...
- 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
2023-01-29 15:04:13 -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
joachimschmidt557
c0284e242f
stage2 ARM: add basic debug info for locals
...
Also disables one behavior test which was failing
2023-01-22 12:00:04 +01:00
Andrew Kelley
a51c76541d
Merge pull request #14403 from Vexu/fixes
...
Misc fixes
2023-01-22 00:36:50 -05:00
Veikka Tuominen
aa626deadd
llvm: implement explicit Win64 and SysV calling conventions
2023-01-22 01:04:20 +02:00
Veikka Tuominen
1f475de852
Sema: fix unwrapping null when reporting error on member access
...
Closes #14399
2023-01-22 01:04:20 +02:00
Veikka Tuominen
5259d11e3b
Sema: resolve fields before checking tuple len
...
Closes #14400
2023-01-22 00:12:37 +02:00
Veikka Tuominen
5f5ab49168
Value: implement compareAllWithZero for bytes and str_lit
...
Closes #10692
2023-01-22 00:12:37 +02:00
Veikka Tuominen
a492a607d5
type: correct condition for eliding pointer alignment canonicalization
...
Closes #14373
2023-01-22 00:12:37 +02:00
Veikka Tuominen
d284c00fda
Sema: handle lazy values in more places
...
* resolve lazy values in anon structs being passed to anytype params
* use `resolveMaybeUndefValIntable` where appropriate
Closes #14356
2023-01-22 00:12:36 +02:00
Jakub Konka
241cabdf3d
link-tests: do not expect __eh_frame section on x86_64-macos
2023-01-21 19:14:44 +01:00
Jakub Konka
983e373409
macho: fix sorting symbols by seniority
2023-01-21 16:53:46 +01:00
Jakub Konka
02db9933a4
macho: properly relocate target symbol address in __eh_frame
2023-01-21 14:11:56 +01:00
Jakub Konka
eb0c959b43
link-tests: update uuid test with new uuid values
...
Changes only pertain arm64 as for x86_64 turns out we are
missing one additional feature which is synthesising unwind info
from only eh frame records, or at least this is what it looks like
when I analysed the output of Apple's ld.
2023-01-20 21:27:57 +01:00
Jakub Konka
e0ccbff87d
link-tests: test unwind info emitter via c++ exceptions
2023-01-20 20:57:40 +01:00
Hardy
37fe41792c
added test for bitcast signaled nan float
...
This was fixed by MR #14201
closes #10449
2023-01-20 16:42:24 +02:00
Veikka Tuominen
fe6dcdba14
Merge pull request #14357 from kcbanner/llvm_byval_struct
...
llvm: implement Stdcall calling convention
2023-01-20 04:38:49 +02:00
kcbanner
c1bdf01533
tests: disable c_abi tests for windows when compiling on linux
2023-01-19 13:06:21 -05:00
Veikka Tuominen
2b7678bc42
llvm: implement Stdcall return types
2023-01-19 16:13:52 +02:00
kcbanner
5949851074
llvm: pass non-scalars as byref in .Stdcall
...
- add c_abi tests for .Stdcall
- enable (x86|x86_64)-windows-gnu in the c_abi tests
2023-01-19 00:37:56 -05:00
Jakub Konka
9d4a4e9ed1
link-tests: update uuid test with new uuid given dyld ops changes
2023-01-19 00:05:54 +01:00
Veikka Tuominen
e04547642a
Sema: promote smaller float types passed to variadic functions
...
Closes #6854
2023-01-17 20:28:43 +02:00
Veikka Tuominen
14f03fbd16
AstGen: reset source cursor before generating pointer attributes
...
These attributes can appear in any order but AstGen expects the source
cursor to be incremented in a monotonically increasing order.
Closes #14332
2023-01-17 20:28:43 +02:00
Veikka Tuominen
24646b8b5d
windows x86_64 C ABI: pass byref structs as byref_mut
2023-01-17 20:28:43 +02:00
Veikka Tuominen
8b35f09f4a
Sema: resolve lazy values in switch prong items
...
Closes #14330
2023-01-17 20:28:43 +02:00
Veikka Tuominen
6b037bad59
Sema: ignore dependency loops in typeinfo decls
...
This matches stage1 behavior.
Closes #14322
2023-01-17 20:28:43 +02:00
Veikka Tuominen
94be9dcc7f
enable passing compile error test
2023-01-17 20:28:43 +02:00
Veikka Tuominen
6e067dc050
llvm: do not offset packed struct field pointers if they have a host size
...
Closes #14261
2023-01-17 20:28:42 +02:00
Veikka Tuominen
342bae02d8
Sema: automatically optimize order of struct fields
...
This is a simple starting version of the optimization described in #168
where the fields are just sorted by order of descending alignment.
2023-01-16 19:46:41 +02:00
Techatrix
32544ed56c
swap align and callconv in function typeName
2023-01-16 14:04:03 +02:00
Veikka Tuominen
bb15e4057c
Merge pull request #14271 from Vexu/c-abi
...
float related C ABI fixes
2023-01-14 21:42:29 +02:00
Veikka Tuominen
0013042cbd
llvm: correctly handle C ABI structs with f32/f64 alignment differences
...
Closes #13830
2023-01-14 16:26:50 +02:00
Veikka Tuominen
5572c67e73
add C ABI tests for exotic float types
2023-01-14 16:26:50 +02:00
Veikka Tuominen
474848ac0b
also run C ABI tests with -OReleaseFast
2023-01-14 16:26:50 +02:00
Veikka Tuominen
d8128c272a
Sema: fix typeInfo decls with usingnamespace
...
Closes #12403
2023-01-11 21:11:21 +02:00
Veikka Tuominen
1658e4893d
AstGen: add note pointing to tuple field
...
Closes #14188
2023-01-11 21:11:21 +02:00
Veikka Tuominen
8b1780d939
Sema: fix condition for omitting comptime arg from function type
...
Closes #14164
2023-01-11 21:11:21 +02:00
Veikka Tuominen
83673a8b5f
fix errdefers in functions that can't return errors
...
This was broken by 58caed1c71179f48c4e7bffadef0392fa8381e72
Closes #14053
2023-01-10 19:17:42 +02:00
Andrew Kelley
a01d2ab0e3
Merge pull request #14210 from Vexu/compile-errors
...
improve struct/union field error locations
2023-01-05 20:05:14 -07:00
Andrew Kelley
b3e495a38a
Merge pull request #14202 from ziglang/std.http
...
std.http.Client: support HTTP redirects
2023-01-05 19:42:59 -07:00
Jan Philipp Hafer
301a89849b
tools: build all tools in ci to prevent bitrot
...
No LLVM assertions were triggered for me.
Closes #12015
Closes #12022
Closes #12223
2023-01-06 01:18:46 +02:00
Veikka Tuominen
f2faa303a5
Sema: handle enum expressions referencing local variables
...
Closes #12272
2023-01-05 22:03:32 +02:00
Veikka Tuominen
8c4727f9ab
Sema: remove generic function from monomorphed_funcs on any error
2023-01-05 14:26:53 +02:00
Veikka Tuominen
3e084d8de3
Sema: only untyped undefined should coerce to all types
...
Closes #13958
2023-01-05 14:26:53 +02:00
Veikka Tuominen
352c71873b
Sema: improve struct/union field error locations
...
Closes #14206
2023-01-05 13:11:36 +02:00
Veikka Tuominen
f83834993e
std: collect all options under one namespace
2023-01-05 02:31:29 -07:00
Michael Dusan
e0fb4c29cb
llvm codegen: fix f16,f32,f64 nan bitcasts
...
@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
2023-01-05 02:22:30 -07:00