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
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
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
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
Vexu
9437d99ae2
translate-c-2 final small fixes
2019-12-20 18:51:44 +02:00
Vexu
e0046b737e
translate-c-2 improve macro escape sequences
2019-12-20 13:50:34 +02:00
Vexu
daeb939210
translate-c-2 fix switch range
2019-12-20 11:35:21 +02:00
Vexu
d172a7335c
translate-c-2 copy parametrs to stack
2019-12-20 00:12:08 +02:00
Vexu
b7f18164f9
translate-c-2 add missing casts
2019-12-19 21:30:51 +02:00
Vexu
61482be153
translate-c-2 improve macro fn ptr caller
2019-12-19 20:58:48 +02:00
Vexu
f837c7c9cd
translate-c-2 compound assign
2019-12-19 16:13:28 +02:00
Vexu
6cd402f1b4
translate-c-2 increments worst-case
2019-12-19 10:48:32 +02:00
Vexu
809deb6ec0
translate-c-2 unary operators common case
2019-12-19 09:56:00 +02:00
Vexu
e4c47e80b4
translate-c-2 unaryexprortypetrait + fixes
2019-12-19 08:28:36 +02:00
Vexu
122a9bad39
translate-c-2 fix some casts
2019-12-19 01:38:42 +02:00
Vexu
d54c288bd3
translate-c-2 function calls
2019-12-18 23:56:39 +02:00
Vexu
c2666c48a4
translate-c-2 array access
2019-12-18 22:57:53 +02:00
Vexu
cf7a5b7a4a
translate-c-2 member access
2019-12-18 22:29:42 +02:00
Vexu
e65b9e8f7b
translate-c-2 stmt expr
2019-12-18 21:20:38 +02:00
Vexu
62bfff5e87
translate-c-2 fix expression grouping bugs
2019-12-18 13:32:19 +02:00
Vexu
f54e7d6c99
translate-c-2 update @kavika13's work to removal of TransResult
2019-12-18 12:47:35 +02:00
Vexu
90eed4172d
Merge remote-tracking branch 'kavika13/master' into translate-c-2
2019-12-18 09:51:40 +02:00
Vexu
21bc3353b8
translate-c-2 character literals and more test fixes
2019-12-18 01:04:01 +02:00
Vexu
6d7025d0c5
translate-c-2 various fixes to get more tests passing
2019-12-17 23:28:13 +02:00
Vexu
a6960b89ed
translate-c-2 fix container type resolution
2019-12-17 22:05:07 +02:00
Vexu
65531c73a9
translate-c-2 switch
2019-12-17 17:19:28 +02:00
Vexu
0283ab8a1a
translate-c-2 conditional operator
2019-12-17 12:06:28 +02:00
Vexu
daa22d42b0
translate-c-2 floats
2019-12-17 11:28:56 +02:00
Vexu
9cda93a24e
translate-c-2 don't shadow primitive types
2019-12-17 10:20:02 +02:00
Vexu
ab6fe57462
translate-c-2 for loops
2019-12-17 01:40:06 +02:00
Vexu
6a3d48353b
translate-c-2 while loops
2019-12-16 22:10:17 +02:00
Vexu
e3f1bfe483
translate-c-2 if statements
2019-12-16 18:19:37 +02:00
Vexu
626562555e
translate-c-2 wors-case assign
2019-12-16 18:19:37 +02:00
Vexu
d9527edfe0
translate-c-2 comma operator
2019-12-16 18:19:24 +02:00
Vexu
04dc0bd0e4
translate-c-2 variable aliasing
2019-12-16 12:45:00 +02:00
Merlyn Morgan-Graham
89ef635b35
Add boolean and, boolean or binary ops in translate-c-2
2019-12-16 01:34:05 -08:00
Merlyn Morgan-Graham
acff2d407b
Add bit shift binary ops in translate-c-2
2019-12-16 01:34:04 -08:00
Merlyn Morgan-Graham
c8c89648b0
Add comparison and bitwise binary ops in translate-c-2
2019-12-16 01:34:04 -08:00