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
signaturelock-open 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 @@...@@ -1,3 +1,5 @@
1const builtin = @import("builtin");
2
1pub const struct_ZigClangAPSInt = @OpaqueType();3pub const struct_ZigClangAPSInt = @OpaqueType();
2pub const struct_ZigClangAPFloat = @OpaqueType();4pub const struct_ZigClangAPFloat = @OpaqueType();
3pub const struct_ZigClangASTContext = @OpaqueType();5pub const struct_ZigClangASTContext = @OpaqueType();
...@@ -938,7 +940,7 @@ pub const struct_ZigClangExprEvalResult = extern struct {...@@ -938,7 +940,7 @@ pub const struct_ZigClangExprEvalResult = extern struct {
938940
939pub const struct_ZigClangAPValue = extern struct {941pub const struct_ZigClangAPValue = extern struct {
940 Kind: ZigClangAPValue_ValueKind,942 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,
942};944};
943945
944pub const ZigClangAPValue_ValueKind = extern enum {946pub const ZigClangAPValue_ValueKind = extern enum {
src/zig_clang.h+6-1
...@@ -47,7 +47,12 @@ enum ZigClangAPValue_ValueKind {...@@ -47,7 +47,12 @@ enum ZigClangAPValue_ValueKind {
4747
48struct ZigClangAPValue {48struct ZigClangAPValue {
49 enum ZigClangAPValue_ValueKind Kind;49 enum ZigClangAPValue_ValueKind Kind;
50 char Data[68]; // experimentally-derived size of clang::APValue::DataType50 // experimentally-derived size of clang::APValue::DataType
51#ifdef _WIN32
52 char Data[52];
53#else
54 char Data[68];
55#endif
51};56};
5257
53struct ZigClangExprEvalResult {58struct ZigClangExprEvalResult {