LemonBoy
176bc53858
translate-c: Fix translation of fn pointers
...
Closes #4332
2020-01-30 21:33:50 -05:00
LemonBoy
979c69d6b2
Amend some failing test cases
2020-01-30 19:53:35 +01:00
LemonBoy
534014f84e
translate-c: Handle fn protos wrapped in parenthesis
...
Closes #4289
2020-01-29 12:06:53 -05:00
Andrew Kelley
9dffc369f1
Merge remote-tracking branch 'origin/master' into layneson-cpus_and_features
2020-01-25 23:25:29 -05:00
Feix Weiglhofer
a4a9330648
translate-c: Don't make const parameters mutable. ( #4273 )
...
* translate-c: Remove arg-prefix from const parameters.
* translate-c: Add unittest for const parameters.
2020-01-24 15:32:32 -05:00
LemonBoy
a284be3f69
Fix unsafe cast in translate_c
...
Fixes #4250
2020-01-22 17:58:57 -05:00
Andrew Kelley
48c7e6c48b
std.Target.CpuFeatures is now a struct with both CPU and feature set
...
Previously it was a tagged union which was one of:
* baseline
* a specific CPU
* a set of features
Now, it's possible to have a CPU but also modify the CPU's feature set
on top of that. This is closer to what LLVM does.
This is more correct because Zig's notion of CPUs (and LLVM's) is not
exact CPU models. For example "skylake" is not one very specific model;
there are several different pieces of hardware that match "skylake" that
have different feature sets enabled.
2020-01-22 17:13:31 -05:00
Vexu
6450736c5f
translate-c default enum tag type to c_int
2020-01-16 12:50:44 +02:00
Vexu
f3d174aa61
require size for non-exhaustive enums
2020-01-15 21:38:11 +02:00
Vexu
b971c7d0ff
update tests and translate-c
2020-01-15 20:58:42 +02:00
LemonBoy
34ae1d9aa8
Fix unsafe cast in translate_c
...
* Handle EmptyDecls to clean up the generated code
Closes #4143
2020-01-11 15:51:10 -05:00
travisstaloch
3f98756f85
Fix translation of signed array indices ( #4113 )
...
* cast only if the index is long long or signed
* cast long long to usize rather than c_uint
closes #4075
2020-01-10 00:08:24 -05:00
LemonBoy
5b34697b21
Cast integer literals to their specified type
2020-01-08 10:19:04 +01:00
LemonBoy
fd7e69a2c0
More translate-c fixes
...
* Translate OpaqueValueExpr
* Translate BinaryConditionalOperator
* Fix translation of boolean->int casts
* Reoder some tokens to avoid rendering errors
2020-01-08 08:43:37 +01:00
via
9390e8b848
Preserve packed attribute in C translated struct ( #4085 )
...
* Preserve packed attribute in C translated struct
* Add tests for packed C struct
2020-01-07 02:36:07 -05:00
Andrew Kelley
baaef7ed97
Merge pull request #4083 from LemonBoy/better-stdbool
...
Better _Bool translation
2020-01-06 19:21:55 -05:00
LemonBoy
2da9e0060b
Add explanation about weird clang behavior on windows
2020-01-06 19:17:47 -05:00
LemonBoy
1dc25d7550
Translate anonymous union/struct
2020-01-06 19:17:47 -05:00
Tadeo Kondrak
f83b02a581
translate-c: use @intToPtr to cast away qualifiers
2020-01-06 19:09:49 -05:00
Andrew Kelley
5ada610e09
update translate-c and tests for new extern/callconv syntax
2020-01-06 17:54:16 -05:00
Andrew Kelley
53913acaf7
zig fmt and update extern fn to callconv(.C)
2020-01-06 15:34:50 -05:00
Andrew Kelley
0a9daeb37e
Merge branch 'cc-work' of https://github.com/LemonBoy/zig into LemonBoy-cc-work
2020-01-06 14:07:56 -05:00
LemonBoy
cd39f6df95
Better _Bool translation
2020-01-06 00:12:18 +01:00
LemonBoy
6ff70d3c31
Better InitListExpr translation
2020-01-05 17:39:29 -05:00
Andrew Kelley
d7bff05098
Merge pull request #4064 from ziglang/fix-4054
...
use @intCast instead of @as for shift rhs
2020-01-05 15:01:21 -05:00
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
Josh Wolfe
ac867cc45f
fix tests
2020-01-03 20:55:47 -07: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
LemonBoy
d09bd3d86c
Fix more tests
2020-01-02 19:01:38 +01:00
LemonBoy
0ccac79c8e
Implement Thiscall CC
2020-01-02 18:57:08 +01:00
LemonBoy
08a26fea09
translate-c tests
2020-01-02 18:57:07 +01: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
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
Vexu
f35a963ac5
translate-c properly handle unused var-args
2020-01-02 10:39:52 -05:00
Andrew Kelley
88c5e2a96e
translate-c: don't export inline functions
2020-01-01 20:54:17 -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
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