LemonBoy
a712ea333b
Fix translation of for loop init
...
Closes #4067
2020-01-04 11:49:43 +01:00
LemonBoy
51e430fac0
Fix edge case in hex-literal translation
2020-01-04 11:06:28 +01:00
LemonBoy
b91eaba38c
Correct evaluation of optional type alignment
...
The lazy logic was too oversimplified and produced a different result
than the one computed later causing all kinds of problems.
Closes #4013
2020-01-03 17:41:55 -05:00
Andrew Kelley
a90fa45ae1
Merge pull request #4027 from ziglang/fix-float-ops
...
fix float ops with respect to vectors
2020-01-02 16:10:41 -05:00
Andrew Kelley
fe21d84c94
Merge pull request #4040 from Vexu/translate-c-cast-fixes
...
Translate c cast fixes
2020-01-02 14:57:48 -05:00
LemonBoy
b0fa2ff853
Translate struct/union initializer expressions
2020-01-02 14:16:39 -05:00
Andrew Kelley
213ff939f1
fix comptime vector float ops and add test coverage
...
also rename `@ln` to `@log` to match libc convention.
2020-01-02 14:01:48 -05:00
LemonBoy
d908ca4823
Translate align attribute
2020-01-02 12:33:19 -05:00
LemonBoy
8e89bdfe99
Translate linksection attribute
2020-01-02 12:32:51 -05:00
Vexu
0f1595e72c
translate-c use `@enumToInt` for global enum values
2020-01-02 18:38:20 +02:00
Andrew Kelley
7bd80f2071
translate-c tests: print clang compile errors on nonzero exit code
2020-01-02 11:12:21 -05:00
Vexu
3dd067fa2b
translate-c fix increment rendering issues
2020-01-02 10:47:14 -05:00
LemonBoy
de894f2bde
Prefer simple ptrCast between opaque types
...
Closes #4031
2020-01-02 10:42:26 -05:00
LemonBoy
1e61e5f404
Don't ptrCast a result-location assignment to _
...
After #4010 doing `_ = @bitCast(...)` triggered a nonsensical compiler
error.
2020-01-02 10:41:11 -05:00
Vexu
f35a963ac5
translate-c properly handle unused var-args
2020-01-02 10:39:52 -05:00
Andrew Kelley
cb56b26900
fix float ops with respect to vectors
...
also remove the redundant type parameter
2020-01-01 23:27:43 -05:00
Andrew Kelley
576320e6d5
Merge pull request #4025 from ziglang/Vexu-stage-2-cimport
...
Use self hosted translate-c for cImport
2020-01-01 22:46:46 -05:00
Andrew Kelley
88c5e2a96e
translate-c: don't export inline functions
2020-01-01 20:54:17 -05:00
Andrew Kelley
5ba143e7e3
avoid trying to translate microsoft's stdio.h inline functions
...
...for now. See #515
2020-01-01 20:33:07 -05:00
Andrew Kelley
ec09b9e5f0
translate-c: prevent name clashing of macros declared after locals
2020-01-01 19:23:46 -05:00
Andrew Kelley
9298b9a4aa
translate-c: prevent name clashing of globals declared after locals
2020-01-01 18:53:08 -05:00
Andrew Kelley
dc28526c6c
translate-c: improve support of integer casting
...
Widening and truncating integer casting to different signedness
works better now. For example `(unsigned long)-1` is now translated
to zig code that compiles correctly.
2020-01-01 18:10:43 -05:00
Vexu
1b64a5f5f0
fix segfault in bit shift safety check
2020-01-01 13:11:42 -05:00
Andrew Kelley
7b62d5dfd8
translate-c: propagate scope properly in nested assignment
2019-12-31 21:01:49 -05:00
Andrew Kelley
42945a269a
translate-c: better mangling strategy
...
Block-local identifiers have block-local mangling numbers, and more
consistent mangling is applied within blocks. Parameters, for example,
are treated the same as other block-local variables, and are not mangled
unless they conflict with another name in scope.
2019-12-31 20:39:33 -05:00
Andrew Kelley
5749f706ef
translate-c: non-wrapping operator for pointer arithmetic
...
According to C11 6.5.6.8, pointer arithmetic may not overflow. In fact,
it may not even go more than 1 past the end of an object, or UB occurs.
This is the same as Zig pointer arithmetic semantics, and so the
`+` and `+=` operators rather than `+%` and `+%=` are appropriate for
C-translated pointer arithmetic.
2019-12-31 17:33:55 -05:00
Andrew Kelley
39ee3bc0ec
Merge branch 'stage-2-cimport' of https://github.com/Vexu/zig into Vexu-stage-2-cimport
2019-12-31 16:55:41 -05:00
Andrew Kelley
73e535e112
Merge pull request #3683 from Vexu/atomic-float
...
Support floats with some atomic operations
2019-12-30 19:19:05 -05:00
Andrew Kelley
a05150e92d
fix comparing comptime_int against undefined literal
...
closes #4004
2019-12-30 19:08:57 -05:00
LemonBoy
28a8ded95a
Resolve more types as needed
...
Closes #3994
2019-12-30 17:45:09 -05:00
LemonBoy
c1ee846c22
Fix ptrCast of zero-sized type
...
Closes #2431
2019-12-30 17:43:58 -05:00
Vexu
950eb81304
translate-c-2 macro comparision ops
2019-12-29 20:19:30 +02:00
frmdstryr
fcc82a219a
Add macro ops
2019-12-29 19:50:45 +02:00
Vexu
621629e20d
translate-c-2 fix assertion failure rendering do while
2019-12-29 17:09:31 +02:00
Vexu
f5e7d2d00c
translate-c fix bugs
...
Thanks @daurnimator
2019-12-29 14:01:59 +02:00
Vexu
59cc7072e2
translate-c-2 use `intCast` in most places
2019-12-29 11:04:59 +02:00
Vexu
fceda07f94
use self hosted translate-c for cimports
2019-12-29 11:04:45 +02:00
Vexu
aea46dcd7e
translate-c-2 macro conditional operator
2019-12-28 22:32:18 +02:00
LemonBoy
6070ffc28e
Fix crash with forward-declared enums
...
Closes #3754
2019-12-28 00:57:37 +01:00
LemonBoy
a38704d012
Fix crash in translate-c w/ parameterless fn
2019-12-28 00:50:17 +01:00
Vexu
2252951066
disable test on arm
2019-12-23 11:55:00 +02:00
Vexu
ab7fc33c83
add zig llvm wrapper for atomicrmw
2019-12-23 11:55:00 +02:00
Vexu
8bb1e04449
support some atomic operations with floats
2019-12-23 11:54:47 +02:00
Andrew Kelley
28dbdba37e
Merge pull request #3935 from Vexu/translate-c-2
...
Translate-c-2 the rest
2019-12-22 16:12:56 -05:00
Vexu
9d31b65b34
translate-c-2 various fixes
...
- make non-namespaced enums ints
- fix .used compound assignments not being grouped
- fix macro calls with casts producing invalid Zig
2019-12-22 14:38:06 +02:00
Andrew Kelley
290dc5d95b
zig fmt support for slice sentinel syntax
2019-12-21 14:03:36 -05:00
Andrew Kelley
8d73703d52
fix safety for sentinel-slicing floats
2019-12-20 18:28:59 -05:00
Andrew Kelley
8918cb06fc
sentinel slicing improvements
...
* add runtime safety for slicing pointers, arrays, and slices.
* slicing without a sentinel value results in non-sentineled slice
* improved `std.debug.panic` handling of panic-during-panic
2019-12-20 18:28:59 -05:00
Andrew Kelley
26f3c2d061
fix std.mem.addNullByte and implement sentinel slicing
...
see #3770
2019-12-20 18:28:56 -05:00
LemonBoy
51cbd96820
Fix sentinel value of opaque pointers in typeInfo
...
Fixes #3888
2019-12-20 15:48:34 -05:00