diff --git a/src/clang.zig b/src/clang.zig index 45fd4456edc28319383a34e46965b6e56932d055..453b66696a6c141fe04822ffd8cace01cb7c9966 100644 --- a/src/clang.zig +++ b/src/clang.zig @@ -37,9 +37,15 @@ pub const QualType = extern struct { }; pub const APValueLValueBase = extern struct { - Ptr: ?*anyopaque, - CallIndex: c_uint, - Version: c_uint, + Ptr: ?*anyopaque align(@alignOf(u64)), + State: extern union { + Local: extern struct { + CallIndex: c_uint, + Version: c_uint, + }, + TypeInfoType: ?*anyopaque, + DynamicAllocType: ?*anyopaque, + }, pub const dyn_cast_Expr = ZigClangAPValueLValueBase_dyn_cast_Expr; extern fn ZigClangAPValueLValueBase_dyn_cast_Expr(APValueLValueBase) ?*const Expr; diff --git a/src/zig_clang.h b/src/zig_clang.h index 8bfc0ab2e66594e5c944a145307414639337eb6a..f4bebe6f62fdc4175af11209474342601060fa0e 100644 --- a/src/zig_clang.h +++ b/src/zig_clang.h @@ -43,10 +43,16 @@ struct ZigClangQualType { void *ptr; }; -struct ZigClangAPValueLValueBase { - void *Ptr; - unsigned CallIndex; - unsigned Version; +struct alignas(uint64_t) ZigClangAPValueLValueBase { + void* Ptr; + union { + struct { + unsigned CallIndex; + unsigned Version; + } Local; + void* TypeInfoType; + void* DynamicAllocType; + }; }; enum ZigClangAPValueKind {