diff --git a/CMakeLists.txt b/CMakeLists.txt index c1ea43943d..cff70950de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -649,7 +649,9 @@ set(ZIG_C_HEADER_FILES "__clang_cuda_builtin_vars.h" "__clang_cuda_cmath.h" "__clang_cuda_complex_builtins.h" + "__clang_cuda_device_functions.h" "__clang_cuda_intrinsics.h" + "__clang_cuda_libdevice_declares.h" "__clang_cuda_math_forward_declares.h" "__clang_cuda_runtime_wrapper.h" "__stddef_max_align_t.h" @@ -660,6 +662,7 @@ set(ZIG_C_HEADER_FILES "ammintrin.h" "arm64intr.h" "arm_acle.h" + "arm_fp16.h" "arm_neon.h" "armintr.h" "avx2intrin.h" @@ -689,6 +692,7 @@ set(ZIG_C_HEADER_FILES "bmi2intrin.h" "bmiintrin.h" "cetintrin.h" + "cldemoteintrin.h" "clflushoptintrin.h" "clwbintrin.h" "clzerointrin.h" @@ -709,6 +713,7 @@ set(ZIG_C_HEADER_FILES "immintrin.h" "intrin.h" "inttypes.h" + "invpcidintrin.h" "iso646.h" "limits.h" "lwpintrin.h" @@ -717,17 +722,21 @@ set(ZIG_C_HEADER_FILES "mm_malloc.h" "mmintrin.h" "module.modulemap" + "movdirintrin.h" "msa.h" "mwaitxintrin.h" "nmmintrin.h" "opencl-c.h" + "pconfigintrin.h" "pkuintrin.h" "pmmintrin.h" "popcntintrin.h" "prfchwintrin.h" + "ptwriteintrin.h" "rdseedintrin.h" "rtmintrin.h" "s390intrin.h" + "sgxintrin.h" "shaintrin.h" "smmintrin.h" "stdalign.h" @@ -746,6 +755,8 @@ set(ZIG_C_HEADER_FILES "varargs.h" "vecintrin.h" "vpclmulqdqintrin.h" + "waitpkgintrin.h" + "wbnoinvdintrin.h" "wmmintrin.h" "x86intrin.h" "xmmintrin.h" diff --git a/src/ir.cpp b/src/ir.cpp index 09d6fca7e7..c48b56255d 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -17153,6 +17153,7 @@ static Error ir_make_type_info_defs(IrAnalyze *ira, ConstExprValue *out_val, Sco } static ConstExprValue *create_ptr_like_type_info(IrAnalyze *ira, ZigType *ptr_type_entry) { + Error err; ZigType *attrs_type; uint32_t size_enum_index; if (is_slice(ptr_type_entry)) { @@ -17165,6 +17166,9 @@ static ConstExprValue *create_ptr_like_type_info(IrAnalyze *ira, ZigType *ptr_ty zig_unreachable(); } + if ((err = type_resolve(ira->codegen, attrs_type->data.pointer.child_type, ResolveStatusAlignmentKnown))) + return nullptr; + ZigType *type_info_pointer_type = ir_type_info_get_type(ira, "Pointer", nullptr); assertNoError(ensure_complete_type(ira->codegen, type_info_pointer_type)); @@ -17308,6 +17312,8 @@ static Error ir_make_type_info_value(IrAnalyze *ira, ZigType *type_entry, ConstE case ZigTypeIdPointer: { result = create_ptr_like_type_info(ira, type_entry); + if (result == nullptr) + return ErrorSemanticAnalyzeFail; break; } case ZigTypeIdArray: @@ -17586,6 +17592,8 @@ static Error ir_make_type_info_value(IrAnalyze *ira, ZigType *type_entry, ConstE { if (type_entry->data.structure.is_slice) { result = create_ptr_like_type_info(ira, type_entry); + if (result == nullptr) + return ErrorSemanticAnalyzeFail; break; }