Veikka Tuominen
59668fbe80
stage2: add test for fixed issue
...
Closes #11157
2022-03-21 15:05:21 +02:00
Veikka Tuominen
a31fe0ff12
stage2: add way to print values with types
2022-03-21 15:03:42 +02:00
Lee Cannon
3d8d6c0a6d
OptionsStep: Always use fmtId for type names.
2022-03-21 02:22:43 -04:00
Andrew Kelley
827538b88f
Merge pull request #11241 from jagt/master
...
add compiler_rt ceilf/ceil/ceill
2022-03-21 02:22:07 -04:00
William Sengir
a5dc3f0342
stage2: add safety checks for index out of bounds
2022-03-20 18:04:38 -04:00
Andrew Kelley
65058ebd72
freestanding libc: remove ceil functions
...
Now that they are in compiler-rt, they can be removed from here.
2022-03-20 13:29:48 -07:00
jagt
b7f4045184
add compiler_rt ceilf/ceil/ceill
...
this should fix stage1 build error with msvc 2019
2022-03-20 13:29:23 -07:00
William Sengir
9f25c8140c
cmake: add missing DWARF files to ZIG_STAGE2_SOURCES
2022-03-20 14:48:37 +01:00
Daniel Hooper
911c839e97
add error when binary ops don't have matching whitespace on both sides
...
This change also moves the warning about "&&" from the AstGen into the parser so that the "&&" warning can supersede the whitespace warning.
2022-03-20 12:55:04 +02:00
Andrew Kelley
0576086395
stage2: remove Value.Tag.abi_align_default
...
and make Decl alignment & linksection, and struct & union field alignment
be scalar values, not Value values.
YAGNI
2022-03-20 00:36:44 -07:00
Andrew Kelley
3ef34feaeb
tools: fix gdb pretty printers
...
needed after merging 5c3325588ef4e85e85cb201ad9328fe26bbb8dca.
2022-03-20 00:36:44 -07:00
Andrew Kelley
6d73f89bf1
stage2: disable default panic handler when linking -lc
...
It's failing to compile std.os.dl_iterate_phdr correctly.
2022-03-20 00:36:44 -07:00
Daniele Cocca
b6203b89d6
CBE: implement mod, divFloor, divTrunc
2022-03-19 21:01:36 -04:00
Andrew Kelley
1bd595ceea
Merge pull request #11233 from Luukdegram/wasm-tests
...
stage2: wasm - union_init and passing tests
2022-03-19 19:41:55 -04:00
Cody Tapscott
19331b323d
stage2: Correctly align decls for comptime allocs
...
This updates WipAnonDecl to require an alignment provided by the caller,
which is needed for explicitly aligned comptime allocs.
2022-03-19 19:41:23 -04:00
Robin Voetter
5c3325588e
stage1: make type names more unique
2022-03-19 19:40:46 -04:00
Andrew Kelley
a318aeed9b
Merge pull request #11222 from Vexu/dbg_block
...
stage2: add debug info for payload captures + inline function parameters
2022-03-19 16:05:22 -04:00
Luuk de Gram
2fc91a09a2
wasm: Enable passing tests
...
This enables the tests that now pass due to the changes to lower
parent pointers are lowered, as well as the additional features to unions.
2022-03-19 20:56:04 +01:00
Luuk de Gram
56590218c5
wasm: All union/tuple/array tests passing
...
This implements improvements/fixes to get all the union, tuple, and array behavior tests passing.
Previously, we lowered parent pointers for field_ptr and element_ptr incompletely. This has now
been improved to recursively lower such pointer.
Also a fix was done to `generateSymbol` when checking a container's layout.
Previously it was assumed to always be a struct. However, the type can also be a tuple, and therefore
panicking. Updating to ask a type's container layout instead allows us to keep a singular branch for both cases.
2022-03-19 20:56:04 +01:00
Luuk de Gram
2041176c5e
wasm: Implement union_init instruction
...
Implements the `@unionInit` builtin instruction.
2022-03-19 20:56:03 +01:00
Mitchell Hashimoto
6766528657
stage2: fix crash that could happen if as zir fails
...
Example scenario:
test {
const a: i32 = blk: {
if (false) break :blk 24;
};
_ = a;
}
Prior to this, this would panic the compiler with a source needed error.
This provides the source as `sema.src`. This is not ideal, since the
line it points to is pretty far from the true issue. (One block out)
But, this prevents the compiler from straight up crashing and follows a
pattern used by similar ZIR which don't provide a src loc.
2022-03-19 15:55:23 -04:00
Andrew Kelley
69e6d455ce
Merge pull request #11228 from Vexu/panic
...
enable default panic handler for stage2 LLVM
2022-03-19 14:32:09 -04:00
zseri
c6cf40a0c0
fix sigaction double panic
...
Fixes #8357
2022-03-19 19:13:31 +02:00
fn ⌃ ⌥
d62b1c932e
translate-c: add missing builtins used by CRuby
2022-03-19 19:08:17 +02:00
Veikka Tuominen
12f3c461a4
Sema: implement zirSwitchCaptureElse for error sets
2022-03-19 15:49:27 +02:00
Veikka Tuominen
c9b6f1bf90
std: enable default panic handler for stage2 LLVM on Linux
2022-03-19 14:05:57 +02:00
Veikka Tuominen
2757237332
Sema: add error for runtime block peer type being comptime only
2022-03-19 13:36:16 +02:00
Veikka Tuominen
d56e3c988f
stage2: fix inline fn parameter debug info being added to wrong block
2022-03-19 11:40:45 +02:00
Veikka Tuominen
1e1f740347
AstGen: always add dbg_block_end before last instruction
2022-03-19 11:20:38 +02:00
Veikka Tuominen
30e17cd5d0
Sema: add debug info for inline function parameters
2022-03-19 11:20:38 +02:00
Veikka Tuominen
f19731948e
Sema: balance dbg_block_begins in case of early return
2022-03-19 11:20:38 +02:00
Veikka Tuominen
739734170e
stage2: add debug info for payload captures
2022-03-19 11:20:38 +02:00
Veikka Tuominen
a8520fbd0f
stage2: add dbg_block_{begin,end} instruction
2022-03-19 11:20:38 +02:00
Andrew Kelley
ad5770eba4
organize behavior tests
...
* Identify the ones that are passing and stop skipping them.
* Flatten out the main behavior.zig file and have each individual test
disable itself if it is not passing.
2022-03-18 15:02:52 -07:00
Andrew Kelley
d5803441cd
Merge pull request #11220 from schmee/vector-bitreverse
...
stage2: implement `@bitReverse` for vectors
2022-03-18 15:27:08 -04:00
Andrew Kelley
e60c0468aa
Merge pull request #11217 from jmc-88/cbe-tuples
...
CBE: add support for tuples
2022-03-18 15:23:40 -04:00
Jakub Konka
338bf55e84
Merge pull request #11216 from joachimschmidt557/stage2-arm
...
stage2 ARM: remove MCValue.embedded_in_code
2022-03-18 20:02:33 +01:00
Mitchell Hashimoto
3865a61a99
stage2: formatting an error_set value should print members, not decl
2022-03-18 14:53:54 -04:00
Andrew Kelley
5765755fcd
Merge pull request #11218 from mitchellh/labeled-break
...
AstGen: labeled blocks should always complete with a normal break
2022-03-18 14:50:40 -04:00
Andrew Kelley
de8f3bc885
AstGen: remove unused parameter
...
This function took a parameter that was only ever used with one value,
obscuring the fact that it was a regular `block` which should be used with
`.break` and not `.break_inline`.
2022-03-18 11:49:18 -07:00
Mitchell Hashimoto
3e74acb139
AstGen: labeled blocks should always complete with a normal break
...
They aren't inline blocks by nature of being labeled.
Fixes #11213
2022-03-18 11:40:39 -07:00
joachimschmidt557
13321c8070
stage2 regalloc: fix tryAllocRegs for specific situations
...
Previously, tryAllocRegs did not take frozen registers into account
when checking if enough registers are available.
2022-03-18 19:37:01 +01:00
Daniele Cocca
6fdca525de
CBE: add support for tuples
...
Also promote tests that are now passing.
2022-03-18 16:50:34 +00:00
John Schmidt
e99b1b398a
Refactor to sema.typeHasOnePossibleValue
2022-03-18 16:28:38 +01:00
John Schmidt
870341e32e
stage2: implement @bitReverse for vectors
2022-03-18 16:28:38 +01:00
Daniele Cocca
085e122e29
bugs/3779: replace expectEqual*() with expect()
2022-03-18 11:20:28 +00:00
joachimschmidt557
c32e2c4d3c
stage2 ARM: remove MCValue.embedded_in_code
2022-03-18 12:19:22 +01:00
Daniele Cocca
af8586da3a
tuple: replace expectEqual() with expect()
2022-03-18 11:18:12 +00:00
joachimschmidt557
3ecba7d7a2
stage2 ARM: implement slice_elem_ptr, ptr_elem_ptr
2022-03-18 12:12:14 +01:00
Andrew Kelley
f3f5a5d05b
stage2: improve @typeName
...
* make it always return a fully qualified name. stage1 is inconsistent
about this.
* AstGen: fix anon_name_strategy to correctly be `func` when anon type
creation happens in the operand of the return expression.
* Sema: implement type names for the "function" naming strategy.
* Put "enum", "union", "opaque", or "struct" in place of "anon" when
creating respective anonymous Decl names.
* std.testing: add `expectStringStartsWith`. Didn't end up using it
after all.
Also this enables the real test runner for stage2 LLVM backend (sans
wasm32) since it works now.
2022-03-18 00:12:22 -07:00