authorgravatar for codroid@gmail.comhryx <codroid@gmail.com> 2019-06-29 14:34:00-07:00
committergravatar for codroid@gmail.comhryx <codroid@gmail.com> 2019-06-29 14:34:00-07:00
log0e38f7215bede51b2ad3b8574e8b472c279d3db4
tree75c90f146e22bc44830826735036218340aff749
parent247e567422a0efde2ed1f2cbf1b16f217f2b61d9
signature Commit is signed but in an unrecognized format.

Define different struct size for APValue on Windows (thanks @Sahnvour)


2 files changed, 9 insertions(+), 2 deletions(-)

src-self-hosted/clang.zig+3-1
......@@ -1,3 +1,5 @@
1const builtin = @import("builtin");
2
13pub const struct_ZigClangAPSInt = @OpaqueType();
24pub const struct_ZigClangAPFloat = @OpaqueType();
35pub const struct_ZigClangASTContext = @OpaqueType();
......@@ -938,7 +940,7 @@ pub const struct_ZigClangExprEvalResult = extern struct {
938940
939941pub const struct_ZigClangAPValue = extern struct {
940942 Kind: ZigClangAPValue_ValueKind,
941 Data: [68]u8, // TODO: is there a way to statically assert that this matches the .h?
943 Data: if (builtin.os == .windows) [52]u8 else [68]u8,
942944};
943945
944946pub const ZigClangAPValue_ValueKind = extern enum {
src/zig_clang.h+6-1
......@@ -47,7 +47,12 @@ enum ZigClangAPValue_ValueKind {
4747
4848struct ZigClangAPValue {
4949 enum ZigClangAPValue_ValueKind Kind;
50 char Data[68]; // experimentally-derived size of clang::APValue::DataType
50 // experimentally-derived size of clang::APValue::DataType
51#ifdef _WIN32
52 char Data[52];
53#else
54 char Data[68];
55#endif
5156};
5257
5358struct ZigClangExprEvalResult {