Alexandros Naskos
37fa418a94
Cleaned up code, added a testcase for an extern member function call
2020-04-27 18:07:18 +03:00
Alexandros Naskos
908b908481
Added tests.
2020-04-27 15:22:15 +03:00
Alexandros Naskos
179423ec27
Extern functions can now be evaluated to undefined values in TypeOfs
2020-04-27 02:33:21 +03:00
Henry Nelson
83b0f9c6f7
Fix unfortunate typo
2020-04-26 17:33:04 -04:00
Andrew Kelley
6aeceec1f2
add CLI option -Bsymbolic for binding global references locally
2020-04-26 15:30:52 -04:00
George Roman
0c037a8561
Pass each target feature flag separately
2020-04-25 15:54:02 -04:00
LemonBoy
a7a8c433d0
stage1: Prevent the creation of illegal ptr types
...
Closes #5140
2020-04-24 15:55:32 -04:00
Timon Kruiper
c829f2f7b7
Add mips support to standard library
2020-04-24 15:28:55 -04:00
xackus
a9eb4a6740
stage1: fix crash on accessing an array of size zero with runtime index
2020-04-23 12:45:32 -04:00
LemonBoy
e6428f9401
stage1: Fix bitcast of immediate to ptr type ( #5131 )
...
Consider a (legal according to the `@bitCast` rules) conversion from u16
to [2]u8: since the former is a scalar and the latter is a pointer
(arrays are represented at pointers in the codegen phase) we have to
allocate a temporary slot on the stack and then bitcast the resulting
pointer to the desired destination type.
Beware that this means the lifetime of the resulting value is the same
of the function it's contained in and for all intents and purposes
should be regarded as a local (eg. it should not escape).
Closes #4395
Closes #5121
2020-04-23 12:44:16 -04:00
Andrew Kelley
e8545db9d4
Merge pull request #5130 from ziglang/stage2-ir
...
beginnings of non-LLVM self-hosted backend
2020-04-22 14:42:46 -04:00
LemonBoy
b5e72c0148
stage1: Prevent the creation of illegal pointer types
...
Changing the pointer length from Unknown to Single/C now resets the
sentinel value too.
Closes #5134
2020-04-22 14:40:57 -04:00
Andrew Kelley
173a143dd0
Merge pull request #5133 from LemonBoy/win-progress
...
Progressbar for Windows
2020-04-22 12:52:48 -04:00
LemonBoy
395b530387
stage1: Another hack for the C ABI compatibility
...
Applying the wrong ABI is slightly better than using the Zig ABI, the
whole thing is so wrong it should be burned to the ground.
2020-04-22 12:52:24 +02:00
Andrew Kelley
2cdbb5f472
ir: analyze int casting
2020-04-21 19:48:59 -04:00
elucent
48dc3b6fe9
Added peer type resolution for [*]T and *[N]T.
2020-04-21 18:09:03 -04:00
Michael Dusan
412aac8a70
cleanup: IrBasicBlockGen
...
remove unused param from `ir_ref_inst_gen`
2020-04-21 18:07:48 -04:00
Michael Dusan
73677e178d
cleanup: IrBasicBlockGen
...
remove unused members { parent, index, ref_count }
2020-04-21 18:07:48 -04:00
LemonBoy
aca6b70184
stage1: Handle errors when generating block IR
...
Closes #5005
2020-04-20 22:39:34 -04:00
LemonBoy
5eaf948e62
stage1: Fix wrong union access
...
Thanks to @frett27 on irc for reporting the compiler would segfault when
run on ARM.
2020-04-20 13:43:14 -04:00
LemonBoy
328eb8ed8d
stage1: Fix signed multiplication overflow
...
Spotted thanks to UBSan
2020-04-19 06:46:33 -04:00
Andrew Kelley
051620dcaf
Merge pull request #5097 from Vexu/field
...
Disallow declarations between fields
2020-04-19 03:52:53 -04:00
xackus
d415ffd7d9
fix uninitialized ZigValue
2020-04-19 03:49:36 -04:00
Vexu
fff00c3bbb
disallow declarations between container fields
2020-04-18 23:56:03 +03:00
Vexu
4f02cf32b4
fix typeInfo tests
2020-04-18 11:39:52 +03:00
Vexu
1afaf42525
add error for non-exter variadic functions
2020-04-17 22:02:49 +03:00
Vexu
c026a9f6d2
fix missing compile errors on builtin cast functions
2020-04-17 14:22:20 -04:00
LemonBoy
8e96922f31
stage1: Fix several bugs in constant generation
...
The codegen would sometimes change the LLVM type for some constants to
an unnamed structure in order to accomodate extra padding. This is fine
as long as the alignment of each field is still respected and it was not
the case for structure types, leading to ill-formed constants being
generated.
Optional types suffer from this to a lower extent as their layout is
quite lucky, the only missing piece was the tail padding.
Closes #4530
Closes #4594
Closes #4295
Closes my will to live
2020-04-17 13:42:23 -04:00
Layne Gustafson
480deacbab
CC: fix binary dupe with no -o
2020-04-15 12:52:35 -04:00
foobles
022a71ca7d
Shift error message now says "fixed-width integer type" instead of just "integer type" ( #5028 )
...
* error message of ir_analyze_bit_shift now more accurate/specific
* fixed compile error test to match bit shift error message
2020-04-14 16:19:45 -04:00
Andrew Kelley
fc48c232e5
cli: add c++
subcommand to --help menu
...
closes #5034
2020-04-14 13:38:18 -04:00
LemonBoy
ce21a784a4
stage1: More fixes for BE targets
...
* Fix packed struct alignment
* Adjust some tests
2020-04-13 17:35:14 -04:00
Michael Dusan
20b2457388
only use -nostdinc++
on c++ files
...
This is a follow-up to d27ef1aaef8ac12801ba4e6c2ed748c7151096a7
and avoids compiler warnings:
warning: argument unused during compilation: '-nostdinc++'
2020-04-12 01:03:27 -04:00
Andrew Kelley
d27ef1aaef
Zig treats -lstdc++ identically to -lc++
...
Thanks to Michael Dusan for figuring out what was happening here.
closes #5012
2020-04-12 00:50:16 -04:00
Andrew Kelley
a6e288d5fe
Merge pull request #4711 from leroycep/feature-file-locks
...
Add lock option to File.OpenFlags and File.CreateFlags
2020-04-10 15:00:45 -04:00
Timon Kruiper
121307679b
Fix generated docs of user code
...
fff3c1fff4c3ebfcb2bd4f08a43ae7815b5c446b broke the docs generation for
own user code. This adds a workaround, because all the code in docs/main.js
is relying on the fact that the root package of the main package is the
root package itself.
2020-04-10 14:59:51 -04:00
Vexu
f60e7348d5
add error message for invalid assignment
2020-04-09 11:50:32 +03:00
Andrew Kelley
beae932e0f
Merge pull request #4975 from Vexu/param-reassign
...
Fix missing compile error on assign to slice and array parameters
2020-04-08 21:02:50 -04:00
Andrew Kelley
c45ba49b8b
fix formatted printing warning
...
needed to use ZIG_PRI_u64 instead of %lu
2020-04-08 19:30:18 -04:00
Vexu
b1e44adcba
move array and struct const checks to more appropriate places
2020-04-08 14:32:02 +03:00
Andrew Kelley
b3aef49eea
zig provides shlwapi.lib for *-windows-gnu
...
closes #3711
2020-04-08 01:21:00 -04:00
xackus
66b2477ab6
fix lazy value in ir_analyze_instruction_elem_ptr
2020-04-07 18:22:17 -04:00
xackus
bf46117f13
std lib docs: fix null and int values
2020-04-07 23:37:01 +02:00
Vexu
ff0f97a1bc
fix missing compile error on assign to slice and array parameters
2020-04-08 00:27:14 +03:00
Andrew Kelley
22dbeab29d
Merge pull request #4857 from LemonBoy/fix-4777
...
Rewrite the bound checks in slice operator
2020-04-07 14:51:25 -04:00
LemonBoy
cc0fca9d83
stage1: Respect the specified name for extern var
...
Extend the logic used for function definitions to variables.
Closes #4947
2020-04-07 14:48:37 -04:00
Vexu
e62671f643
fix missing const on address of literal
2020-04-07 15:25:44 +03:00
LeRoyce Pearson
798207ec80
Merge branch 'master' into feature-file-locks
2020-04-06 21:51:57 -06:00
Andrew Kelley
41cb49eb58
stage1 fixes to support building with 32-bit mingw-w64
2020-04-06 20:30:34 -04:00
Andrew Kelley
9ed00b3829
provide ___mb_cur_max_func for i386-windows-gnu
2020-04-06 19:26:31 -04:00