Andrew Kelley
52b24d5725
stage1: add some code comments for ConstValSpecial
2020-11-29 18:02:13 -07:00
LemonBoy
df99cfdf1e
stage1: Fix typeInfo generation for arrays w/o sentinel
...
ZigTypeIdOptional types have a different way of specifying their payload
value depending on whether the child type is a pointer or not (plus some
other special cases).
Fixes #7251
2020-11-29 10:39:10 -08:00
LemonBoy
c80d196094
stage1: Add missing bitcast when rendering var ptr
...
Some types require this extra bitcast, eg. structs or unions with extra
padding fields inserted by the compiler.
Fixes #7250
2020-11-29 10:37:06 -08:00
Andrew Kelley
e701ac1a51
Merge pull request #7237 from koachan/sparc64-longdouble_fork
...
Add "long double" mapping and implement fork() on Linux/sparc64
2020-11-29 10:33:43 -08:00
LemonBoy
f91df39ad2
stage1: Fix crash in *[N]T to []T conversion with zst
...
Prevent the crash by not making the codegen try to access the
non-existing ptr field in the slice.
Closes #6951
2020-11-27 14:33:26 -08:00
Koakuma
cf2ee4ae2c
Add sparc64 long double mapping
2020-11-27 18:51:50 +07:00
LemonBoy
21c488ce68
stage1: Force union member types to be resolved
...
No test case because I couldn't reduce the huuuge test case.
Fixes the problem discovered by @ifreund.
2020-11-26 10:49:47 -08:00
LemonBoy
58c2bec589
stage1: Fix ICE when generating struct fields with padding
...
Make gen_const_ptr_struct_recursive aware of the possible presence of
some trailing padding by always bitcasting the pointer to its expected
type.
Not an elegant solution but makes LLVM happy and is consistent with how
the other callsites are handling this case.
Fixes #5398
2020-11-25 15:36:33 -08:00
Andrew Kelley
abc717f203
modernize the PIE patch for the latest master branch
...
This is the part of #3960 that has to be rewritten to apply to latest
master branch code.
2020-11-22 17:28:11 -07:00
Andrew Kelley
7dcda5b0e8
Merge pull request #7182 from LemonBoy/externnnn
...
Initial implementation of @extern builtin
2020-11-21 09:41:49 -08:00
LemonBoy
ccdaf946b9
Rename back to extern, extend a stage1 parser hack
...
Make it recognize extern/export symbols prefixed by @ as a builtin
rather than stand-alone keywords.
2020-11-21 09:48:21 +01:00
LemonBoy
6029114f84
stage1: Resolve usingnamespace decls when calling @typeInfo
...
Closes #7176
2020-11-20 17:01:23 -08:00
LemonBoy
9b7d9c72b0
stage1: Initial implementation of @extern
2020-11-20 22:32:43 +01:00
Veikka Tuominen
cf819b95fe
Merge pull request #6829 from tadeokondrak/error-unsupported-callconv
...
stage1: Compile error instead of falling back to C for unsupported cc
2020-11-19 19:03:08 +02:00
Tadeo Kondrak
25ec2dbc1e
Add builtin.Signedness, use it instead of is_signed
2020-11-19 18:59:21 +02:00
Vexu
3a28b659bd
add compile-error tests for unsupported calling convention
2020-11-19 14:25:46 +02:00
Tadeo Kondrak
51b362c350
stage1: Check calling convention correctly for subsystem detection
2020-11-19 14:18:35 +02:00
Tadeo Kondrak
6b9dc82fa5
stage1: Compile error instead of falling back to C for unsupported cc
2020-11-19 13:59:11 +02:00
LemonBoy
2b7781d82a
stage1: Fix undefined assignment for bitfields
...
Prevents silent memory corruption.
Closes #7055
2020-11-18 21:49:39 -08:00
Andrew Kelley
02a4e5a4bf
Merge pull request #6385 from LemonBoy/callocator
...
std: Make C allocator respect the required alignment
2020-11-18 20:16:57 -08:00
pfg
cf7de64f1a
stage1: improve error for missing a number type on a runtime var
2020-11-18 21:45:51 +02:00
frmdstryr
a39d3155b4
Change error when runtime value passed to comptime arg
2020-11-18 13:33:45 +02:00
LemonBoy
129ccad434
stage1: Reject undefined values when taking union ptr
...
The code rightfully assumes the union_val object to be fully initialized.
Closes #7019
2020-11-18 13:21:36 +02:00
Timon Kruiper
66d6930b5c
Allow Zig to be built with clang 11 and -Werror
...
This was brought to the horizon when using zig-bootstrap to cross compile
Zig for windows-gnu.
2020-11-18 13:09:44 +02:00
LemonBoy
bef140c0a2
stage1: Add architecture-specific clobbers to asm()
...
We're basically following Clang's lead, add the necessary clobbers to
minimize the risk of generating wrong code.
2020-11-18 13:08:04 +02:00
LemonBoy
fa27420b72
stage1: Fix asyncCall with non-abi-aligned arguments
...
Make the code used to calculate the variable slot index into the frame
match what's done during the structure layout calculation.
Prevents a few nasty LLVM errors when such types are passed around.
2020-11-17 15:55:12 -08:00
Andrew Kelley
d9c36cb250
Merge pull request #6878 from frmdstryr/multiline-string-comments
...
Support comments in multiline string literals
2020-11-16 14:05:15 -08:00
Alexandros Naskos
6e2e747b0b
Merge pull request #7112 from LemonBoy/fix-7104
...
stage1: Fix generation of pass-by-value args in async fns
2020-11-16 09:12:42 +02:00
LemonBoy
7ebbc717c0
stage1: Fix generation of pass-by-value args in async fns
...
The mismatch between the argument slot type in the frame structure and
the one used in the store operation made the generated code write
garbage over the nearby fields.
Fixes #7104
2020-11-14 15:30:06 +01:00
LemonBoy
211feea914
stage1: Disambiguate Wasm imports with same name
...
Closes #7088
2020-11-13 16:32:42 -05:00
LemonBoy
c4fd3fc270
stage1: Resolve ErrorUnion children types
...
Since the code is accessing the abi_size field compute the full type
size for both err_set_type and payload_type, not only for the latter.
2020-11-13 14:28:40 -07:00
LemonBoy
b52a28a802
stage1: Ask LLVM to produce compact code in ReleaseSize mode
...
Let's follow what Clang does for -Oz and apply the `minsize` and
`optsize` attributes by default.
Closes #7048
Supersedes #7077
2020-11-13 12:25:13 -05:00
Vexu
08270d72b4
ensure TypeInfo payload is not undefined
2020-11-11 16:04:46 +02:00
LemonBoy
5872ae5111
stage1: Fix crash in comptime struct generation
...
Using the gen_index rather than the src_index is needed to handle
structures containing zero-sized or comptime only types.
Closes #7027
2020-11-11 15:35:19 +02:00
LemonBoy
f0b1b74d21
stage1: Avoid resolving type entry in [0]T
...
The logic was already there but this rule was only applied in some
places, apply it in the remaining code paths.
Closes #7058
2020-11-11 13:53:24 +02:00
LemonBoy
4d4ab1e69a
stage1: Fix comparison of unions containing zero-sized types
...
The code tried to be too smart and skipped the equality (returning true)
if the payload type was zero-sized.
This optimization is completely wrong when the union payload is a
metatype!
Fixes #7047
2020-11-10 17:21:49 -05:00
LemonBoy
e00356d6b1
stage1: Print correct error message for vector @intCast
2020-11-09 18:24:48 -05:00
LemonBoy
78840c4ab2
stage1: Make sure union(enum(T)) is valid
...
The T type should be wide enough to fit values in the 0...num field
range.
Closes #6988
2020-11-05 17:24:04 -05:00
LemonBoy
4664eae1e4
stage1: Fix type mapping for c_longdouble
...
A quick and dirty job to let the compiler use the correct size and
alignment.
2020-11-05 16:10:15 +01:00
Jakub Konka
5060497174
Merge pull request #6921 from xackus/gimmeMoreOfThoseSweetSweetFileDescriptors
...
stage2: ask for more file descriptors
2020-11-03 10:07:39 +01:00
LemonBoy
be26c3bf4e
stage1: Fix *WithOverflow intrinsics with u0 values
...
Closes #5369
2020-11-02 13:40:00 -05:00
Andrew Kelley
909aae8153
Merge pull request #6792 from koachan/sparc64-linux
...
Initial sparc64-linux bringup
2020-11-01 22:14:56 -05:00
xackus
7703f4c60a
stage2: ask for more file descriptors
2020-11-01 23:32:25 +01:00
LemonBoy
0d6a7088dc
stage1: Implement Add/Mul reduction operators
2020-11-01 14:30:31 -07:00
LemonBoy
2957433b25
stage1: Fix comptime comparison of NaNs
2020-11-01 14:30:31 -07:00
Travis
bb6e39e274
remove extra space in .** error message
2020-10-30 21:26:05 +02:00
frmdstryr
1d22591299
Add tests and fix \n between comments
2020-10-30 11:20:16 -04:00
frmdstryr
5dd36ee6ce
Add support for comments in multiline string literal
2020-10-30 10:52:30 -04:00
Veikka Tuominen
80dd432137
Merge pull request #6858 from travv0/no-star-after-dot-star
...
don't allow a token starting with an asterisk directly following .*
2020-10-30 16:08:04 +02:00
LemonBoy
490cafe2c5
stage1: Error out when trying to execute unreachable
...
Closes #6802
2020-10-29 20:06:52 -04:00