authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2020-12-16 17:54:49+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2020-12-16 18:13:58+01:00
log1c40a4df094132db952157bf28253ed80646ea00
tree2aa86028c4a8ae0ccc324ad1e60b34891487e5d4
parent6f3ed2f71f3548b399214f604d820cd2dd2887f3

Update zig_llvm.cpp and other bits

Include updates to corresponding zig sources llvm commit b2851aea80e5a8f0cfd6c3c5a56a6b00fb28c6b6

13 files changed, 127 insertions(+), 88 deletions(-)

lib/std/target.zig+12-5
......@@ -36,11 +36,11 @@ pub const Target = struct {
3636 openbsd,
3737 solaris,
3838 windows,
39 zos,
3940 haiku,
4041 minix,
4142 rtems,
4243 nacl,
43 cnk,
4444 aix,
4545 cuda,
4646 nvcl,
......@@ -206,11 +206,11 @@ pub const Target = struct {
206206 .kfreebsd,
207207 .lv2,
208208 .solaris,
209 .zos,
209210 .haiku,
210211 .minix,
211212 .rtems,
212213 .nacl,
213 .cnk,
214214 .aix,
215215 .cuda,
216216 .nvcl,
......@@ -358,11 +358,11 @@ pub const Target = struct {
358358 .kfreebsd,
359359 .lv2,
360360 .solaris,
361 .zos,
361362 .haiku,
362363 .minix,
363364 .rtems,
364365 .nacl,
365 .cnk,
366366 .aix,
367367 .cuda,
368368 .nvcl,
......@@ -432,11 +432,11 @@ pub const Target = struct {
432432 .dragonfly,
433433 .lv2,
434434 .solaris,
435 .zos,
435436 .haiku,
436437 .minix,
437438 .rtems,
438439 .nacl,
439 .cnk,
440440 .aix,
441441 .cuda,
442442 .nvcl,
......@@ -673,6 +673,7 @@ pub const Target = struct {
673673 avr,
674674 bpfel,
675675 bpfeb,
676 csky,
676677 hexagon,
677678 mips,
678679 mipsel,
......@@ -827,6 +828,7 @@ pub const Target = struct {
827828 .amdgcn => ._NONE,
828829 .bpfel => ._BPF,
829830 .bpfeb => ._BPF,
831 .csky => ._CSKY,
830832 .sparcv9 => ._SPARCV9,
831833 .s390x => ._S390,
832834 .ve => ._NONE,
......@@ -884,6 +886,7 @@ pub const Target = struct {
884886 .amdgcn => .Unknown,
885887 .bpfel => .Unknown,
886888 .bpfeb => .Unknown,
889 .csky => .Unknown,
887890 .sparcv9 => .Unknown,
888891 .s390x => .Unknown,
889892 .ve => .Unknown,
......@@ -901,6 +904,7 @@ pub const Target = struct {
901904 .amdil,
902905 .amdil64,
903906 .bpfel,
907 .csky,
904908 .hexagon,
905909 .hsail,
906910 .hsail64,
......@@ -961,6 +965,7 @@ pub const Target = struct {
961965 .arc,
962966 .arm,
963967 .armeb,
968 .csky,
964969 .hexagon,
965970 .le32,
966971 .mips,
......@@ -1020,6 +1025,7 @@ pub const Target = struct {
10201025 .aarch64, .aarch64_be, .aarch64_32 => "aarch64",
10211026 .avr => "avr",
10221027 .bpfel, .bpfeb => "bpf",
1028 .csky => "csky",
10231029 .hexagon => "hexagon",
10241030 .mips, .mipsel, .mips64, .mips64el => "mips",
10251031 .msp430 => "msp430",
......@@ -1461,6 +1467,7 @@ pub const Target = struct {
14611467 // TODO go over each item in this list and either move it to the above list, or
14621468 // implement the standard dynamic linker path code for it.
14631469 .arc,
1470 .csky,
14641471 .hexagon,
14651472 .msp430,
14661473 .r600,
......@@ -1509,11 +1516,11 @@ pub const Target = struct {
15091516 .kfreebsd,
15101517 .lv2,
15111518 .solaris,
1519 .zos,
15121520 .haiku,
15131521 .minix,
15141522 .rtems,
15151523 .nacl,
1516 .cnk,
15171524 .aix,
15181525 .cuda,
15191526 .nvcl,
lib/std/zig/cross_target.zig+2-2
......@@ -111,11 +111,11 @@ pub const CrossTarget = struct {
111111 .kfreebsd,
112112 .lv2,
113113 .solaris,
114 .zos,
114115 .haiku,
115116 .minix,
116117 .rtems,
117118 .nacl,
118 .cnk,
119119 .aix,
120120 .cuda,
121121 .nvcl,
......@@ -711,11 +711,11 @@ pub const CrossTarget = struct {
711711 .kfreebsd,
712712 .lv2,
713713 .solaris,
714 .zos,
714715 .haiku,
715716 .minix,
716717 .rtems,
717718 .nacl,
718 .cnk,
719719 .aix,
720720 .cuda,
721721 .nvcl,
src/codegen/llvm.zig+2-1
......@@ -12,6 +12,7 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![]u8 {
1212 .avr => "avr",
1313 .bpfel => "bpfel",
1414 .bpfeb => "bpfeb",
15 .csky => "csky",
1516 .hexagon => "hexagon",
1617 .mips => "mips",
1718 .mipsel => "mipsel",
......@@ -74,11 +75,11 @@ pub fn targetTriple(allocator: *Allocator, target: std.Target) ![]u8 {
7475 .openbsd => "openbsd",
7576 .solaris => "solaris",
7677 .windows => "windows",
78 .zos => "zos",
7779 .haiku => "haiku",
7880 .minix => "minix",
7981 .rtems => "rtems",
8082 .nacl => "nacl",
81 .cnk => "cnk",
8283 .aix => "aix",
8384 .cuda => "cuda",
8485 .nvcl => "nvcl",
src/llvm.zig+49-47
......@@ -15,6 +15,7 @@ pub const ObjectFormatType = extern enum(c_int) {
1515 Unknown,
1616 COFF,
1717 ELF,
18 GOFF,
1819 MachO,
1920 Wasm,
2021 XCOFF,
......@@ -51,11 +52,11 @@ pub const OSType = extern enum(c_int) {
5152 OpenBSD = 13,
5253 Solaris = 14,
5354 Win32 = 15,
54 Haiku = 16,
55 Minix = 17,
56 RTEMS = 18,
57 NaCl = 19,
58 CNK = 20,
55 ZOS = 16,
56 Haiku = 17,
57 Minix = 18,
58 RTEMS = 19,
59 NaCl = 20,
5960 AIX = 21,
6061 CUDA = 22,
6162 NVCL = 23,
......@@ -84,48 +85,49 @@ pub const ArchType = extern enum(c_int) {
8485 avr = 7,
8586 bpfel = 8,
8687 bpfeb = 9,
87 hexagon = 10,
88 mips = 11,
89 mipsel = 12,
90 mips64 = 13,
91 mips64el = 14,
92 msp430 = 15,
93 ppc = 16,
94 ppc64 = 17,
95 ppc64le = 18,
96 r600 = 19,
97 amdgcn = 20,
98 riscv32 = 21,
99 riscv64 = 22,
100 sparc = 23,
101 sparcv9 = 24,
102 sparcel = 25,
103 systemz = 26,
104 tce = 27,
105 tcele = 28,
106 thumb = 29,
107 thumbeb = 30,
108 x86 = 31,
109 x86_64 = 32,
110 xcore = 33,
111 nvptx = 34,
112 nvptx64 = 35,
113 le32 = 36,
114 le64 = 37,
115 amdil = 38,
116 amdil64 = 39,
117 hsail = 40,
118 hsail64 = 41,
119 spir = 42,
120 spir64 = 43,
121 kalimba = 44,
122 shave = 45,
123 lanai = 46,
124 wasm32 = 47,
125 wasm64 = 48,
126 renderscript32 = 49,
127 renderscript64 = 50,
128 ve = 51,
88 csky = 10,
89 hexagon = 11,
90 mips = 12,
91 mipsel = 13,
92 mips64 = 14,
93 mips64el = 15,
94 msp430 = 16,
95 ppc = 17,
96 ppc64 = 18,
97 ppc64le = 19,
98 r600 = 20,
99 amdgcn = 21,
100 riscv32 = 22,
101 riscv64 = 23,
102 sparc = 24,
103 sparcv9 = 25,
104 sparcel = 26,
105 systemz = 27,
106 tce = 28,
107 tcele = 29,
108 thumb = 30,
109 thumbeb = 31,
110 x86 = 32,
111 x86_64 = 33,
112 xcore = 34,
113 nvptx = 35,
114 nvptx64 = 36,
115 le32 = 37,
116 le64 = 38,
117 amdil = 39,
118 amdil64 = 40,
119 hsail = 41,
120 hsail64 = 42,
121 spir = 43,
122 spir64 = 44,
123 kalimba = 45,
124 shave = 46,
125 lanai = 47,
126 wasm32 = 48,
127 wasm64 = 49,
128 renderscript32 = 50,
129 renderscript64 = 51,
130 ve = 52,
129131};
130132
131133pub const ParseCommandLineOptions = ZigLLVMParseCommandLineOptions;
src/stage1/stage1.h+1-1
......@@ -73,11 +73,11 @@ enum Os {
7373 OsOpenBSD,
7474 OsSolaris,
7575 OsWindows,
76 OsZOS,
7677 OsHaiku,
7778 OsMinix,
7879 OsRTEMS,
7980 OsNaCl, // Native Client
80 OsCNK, // BG/P Compute-Node Kernel
8181 OsAIX,
8282 OsCUDA, // NVIDIA CUDA
8383 OsNVCL, // NVIDIA OpenCL
src/stage1/target.cpp+14-8
......@@ -23,6 +23,7 @@ static const ZigLLVM_ArchType arch_list[] = {
2323 ZigLLVM_avr, // AVR: Atmel AVR microcontroller
2424 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
2525 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
26 ZigLLVM_csky, // CSKY: csky
2627 ZigLLVM_hexagon, // Hexagon: hexagon
2728 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
2829 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
......@@ -71,8 +72,6 @@ static const ZigLLVM_VendorType vendor_list[] = {
7172 ZigLLVM_Apple,
7273 ZigLLVM_PC,
7374 ZigLLVM_SCEI,
74 ZigLLVM_BGP,
75 ZigLLVM_BGQ,
7675 ZigLLVM_Freescale,
7776 ZigLLVM_IBM,
7877 ZigLLVM_ImaginationTechnologies,
......@@ -101,11 +100,11 @@ static const Os os_list[] = {
101100 OsOpenBSD,
102101 OsSolaris,
103102 OsWindows,
103 OsZOS,
104104 OsHaiku,
105105 OsMinix,
106106 OsRTEMS,
107107 OsNaCl, // Native Client
108 OsCNK, // BG/P Compute-Node Kernel
109108 OsAIX,
110109 OsCUDA, // NVIDIA CUDA
111110 OsNVCL, // NVIDIA OpenCL
......@@ -155,8 +154,10 @@ static const ZigLLVM_ObjectFormatType oformat_list[] = {
155154 ZigLLVM_UnknownObjectFormat,
156155 ZigLLVM_COFF,
157156 ZigLLVM_ELF,
157 ZigLLVM_GOFF,
158158 ZigLLVM_MachO,
159159 ZigLLVM_Wasm,
160 ZigLLVM_XCOFF,
160161};
161162
162163size_t target_oformat_count(void) {
......@@ -173,6 +174,7 @@ const char *target_oformat_name(ZigLLVM_ObjectFormatType oformat) {
173174 case ZigLLVM_UnknownObjectFormat: return "unknown";
174175 case ZigLLVM_COFF: return "coff";
175176 case ZigLLVM_ELF: return "elf";
177 case ZigLLVM_GOFF: return "goff";
176178 case ZigLLVM_MachO: return "macho";
177179 case ZigLLVM_Wasm: return "wasm";
178180 case ZigLLVM_XCOFF: return "xcoff";
......@@ -240,6 +242,8 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
240242 case OsWindows:
241243 case OsUefi:
242244 return ZigLLVM_Win32;
245 case OsZOS:
246 return ZigLLVM_ZOS;
243247 case OsHaiku:
244248 return ZigLLVM_Haiku;
245249 case OsMinix:
......@@ -248,8 +252,6 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
248252 return ZigLLVM_RTEMS;
249253 case OsNaCl:
250254 return ZigLLVM_NaCl;
251 case OsCNK:
252 return ZigLLVM_CNK;
253255 case OsAIX:
254256 return ZigLLVM_AIX;
255257 case OsCUDA:
......@@ -306,11 +308,11 @@ const char *target_os_name(Os os_type) {
306308 case OsOpenBSD:
307309 case OsSolaris:
308310 case OsWindows:
311 case OsZOS:
309312 case OsHaiku:
310313 case OsMinix:
311314 case OsRTEMS:
312315 case OsNaCl: // Native Client
313 case OsCNK: // BG/P Compute-Node Kernel
314316 case OsAIX:
315317 case OsCUDA: // NVIDIA CUDA
316318 case OsNVCL: // NVIDIA OpenCL
......@@ -501,6 +503,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
501503 case ZigLLVM_wasm32:
502504 case ZigLLVM_renderscript32:
503505 case ZigLLVM_aarch64_32:
506 case ZigLLVM_csky:
504507 return 32;
505508
506509 case ZigLLVM_aarch64:
......@@ -565,6 +568,7 @@ uint32_t target_arch_largest_atomic_bits(ZigLLVM_ArchType arch) {
565568 case ZigLLVM_shave:
566569 case ZigLLVM_wasm32:
567570 case ZigLLVM_renderscript32:
571 case ZigLLVM_csky:
568572 return 32;
569573
570574 case ZigLLVM_aarch64:
......@@ -703,11 +707,11 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
703707 case OsKFreeBSD:
704708 case OsLv2:
705709 case OsSolaris:
710 case OsZOS:
706711 case OsHaiku:
707712 case OsMinix:
708713 case OsRTEMS:
709714 case OsNaCl:
710 case OsCNK:
711715 case OsAIX:
712716 case OsCUDA:
713717 case OsNVCL:
......@@ -811,6 +815,7 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {
811815 case ZigLLVM_avr:
812816 case ZigLLVM_bpfeb:
813817 case ZigLLVM_bpfel:
818 case ZigLLVM_csky:
814819 case ZigLLVM_hexagon:
815820 case ZigLLVM_lanai:
816821 case ZigLLVM_hsail:
......@@ -865,6 +870,7 @@ bool target_is_arm(const ZigTarget *target) {
865870 case ZigLLVM_avr:
866871 case ZigLLVM_bpfeb:
867872 case ZigLLVM_bpfel:
873 case ZigLLVM_csky:
868874 case ZigLLVM_hexagon:
869875 case ZigLLVM_lanai:
870876 case ZigLLVM_hsail:
......@@ -948,11 +954,11 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
948954 case OsCloudABI:
949955 case OsLv2:
950956 case OsSolaris:
957 case OsZOS:
951958 case OsHaiku:
952959 case OsMinix:
953960 case OsRTEMS:
954961 case OsNaCl:
955 case OsCNK:
956962 case OsAIX:
957963 case OsCUDA:
958964 case OsNVCL:
src/stage1/zig0.cpp+2-2
......@@ -94,6 +94,8 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {
9494 return OsSolaris;
9595 case ZigLLVM_Win32:
9696 return OsWindows;
97 case ZigLLVM_ZOS:
98 return OsZOS;
9799 case ZigLLVM_Haiku:
98100 return OsHaiku;
99101 case ZigLLVM_Minix:
......@@ -102,8 +104,6 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {
102104 return OsRTEMS;
103105 case ZigLLVM_NaCl:
104106 return OsNaCl;
105 case ZigLLVM_CNK:
106 return OsCNK;
107107 case ZigLLVM_AIX:
108108 return OsAIX;
109109 case ZigLLVM_CUDA:
src/target.zig+1-1
......@@ -206,11 +206,11 @@ pub fn osToLLVM(os_tag: std.Target.Os.Tag) llvm.OSType {
206206 .netbsd => .NetBSD,
207207 .openbsd => .OpenBSD,
208208 .solaris => .Solaris,
209 .zos => .ZOS,
209210 .haiku => .Haiku,
210211 .minix => .Minix,
211212 .rtems => .RTEMS,
212213 .nacl => .NaCl,
213 .cnk => .CNK,
214214 .aix => .AIX,
215215 .cuda => .CUDA,
216216 .nvcl => .NVCL,
src/type.zig+1-1
......@@ -3236,11 +3236,11 @@ pub const CType = enum {
32363236 .kfreebsd,
32373237 .lv2,
32383238 .solaris,
3239 .zos,
32393240 .haiku,
32403241 .minix,
32413242 .rtems,
32423243 .nacl,
3243 .cnk,
32443244 .aix,
32453245 .cuda,
32463246 .nvcl,
src/zig_clang.cpp+21-7
......@@ -182,6 +182,8 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
182182 case clang::CK_IntegralToBoolean:
183183 case clang::CK_IntegralToFloating:
184184 case clang::CK_IntegralToPointer:
185 case clang::CK_FloatingToFixedPoint:
186 case clang::CK_FixedPointToFloating:
185187 case clang::CK_LValueBitCast:
186188 case clang::CK_LValueToRValueBitCast:
187189 case clang::CK_LValueToRValue:
......@@ -237,6 +239,8 @@ static_assert((clang::CastKind)ZigClangCK_VectorSplat == clang::CK_VectorSplat,
237239static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast, "");
238240static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, "");
239241static_assert((clang::CastKind)ZigClangCK_IntegralToFloating == clang::CK_IntegralToFloating, "");
242static_assert((clang::CastKind)ZigClangCK_FloatingToFixedPoint == clang::CK_FloatingToFixedPoint, "");
243static_assert((clang::CastKind)ZigClangCK_FixedPointToFloating == clang::CK_FixedPointToFloating, "");
240244static_assert((clang::CastKind)ZigClangCK_FixedPointCast == clang::CK_FixedPointCast, "");
241245static_assert((clang::CastKind)ZigClangCK_FixedPointToIntegral == clang::CK_FixedPointToIntegral, "");
242246static_assert((clang::CastKind)ZigClangCK_IntegralToFixedPoint == clang::CK_IntegralToFixedPoint, "");
......@@ -928,6 +932,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
928932 case clang::Decl::MSGuid:
929933 case clang::Decl::OMPDeclareMapper:
930934 case clang::Decl::OMPDeclareReduction:
935 case clang::Decl::TemplateParamObject:
931936 case clang::Decl::UnresolvedUsingValue:
932937 case clang::Decl::OMPAllocate:
933938 case clang::Decl::OMPRequires:
......@@ -1013,6 +1018,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclIndirectField == clang::Decl::Indir
10131018static_assert((clang::Decl::Kind)ZigClangDeclMSGuid == clang::Decl::MSGuid, "");
10141019static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareMapper == clang::Decl::OMPDeclareMapper, "");
10151020static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");
1021static_assert((clang::Decl::Kind)ZigClangDeclTemplateParamObject == clang::Decl::TemplateParamObject, "");
10161022static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");
10171023static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
10181024static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");
......@@ -1122,6 +1128,8 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
11221128 case clang::BuiltinType::SveFloat64x4:
11231129 case clang::BuiltinType::SveBFloat16x4:
11241130 case clang::BuiltinType::SveBool:
1131 case clang::BuiltinType::VectorQuad:
1132 case clang::BuiltinType::VectorPair:
11251133 case clang::BuiltinType::Void:
11261134 case clang::BuiltinType::Bool:
11271135 case clang::BuiltinType::Char_U:
......@@ -1295,6 +1303,8 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x4 == clang
12951303static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x4 == clang::BuiltinType::SveFloat64x4, "");
12961304static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clang::BuiltinType::SveBFloat16x4, "");
12971305static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");
1306static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");
1307static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");
12981308static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
12991309static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
13001310static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
......@@ -1517,15 +1527,19 @@ static_assert((clang::PreprocessedEntity::EntityKind)ZigClangPreprocessedEntity_
15171527static_assert((clang::PreprocessedEntity::EntityKind)ZigClangPreprocessedEntity_InclusionDirectiveKind == clang::PreprocessedEntity::InclusionDirectiveKind, "");
15181528
15191529
1520void ZigClang_detect_enum_ConstExprUsage(clang::Expr::ConstExprUsage x) {
1530void ZigClang_detect_enum_ConstantExprKind(clang::Expr::ConstantExprKind x) {
15211531 switch (x) {
1522 case clang::Expr::EvaluateForCodeGen:
1523 case clang::Expr::EvaluateForMangling:
1532 case clang::Expr::ConstantExprKind::Normal:
1533 case clang::Expr::ConstantExprKind::NonClassTemplateArgument:
1534 case clang::Expr::ConstantExprKind::ClassTemplateArgument:
1535 case clang::Expr::ConstantExprKind::ImmediateInvocation:
15241536 break;
15251537 }
15261538}
1527static_assert((clang::Expr::ConstExprUsage)ZigClangExpr_EvaluateForCodeGen == clang::Expr::EvaluateForCodeGen, "");
1528static_assert((clang::Expr::ConstExprUsage)ZigClangExpr_EvaluateForMangling == clang::Expr::EvaluateForMangling, "");
1539static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ContantExprKind_Normal == clang::Expr::ConstantExprKind::Normal, "");
1540static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ContantExprKind_NonClassTemplateArgument == clang::Expr::ConstantExprKind::NonClassTemplateArgument, "");
1541static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ContantExprKind_ClassTemplateArgument == clang::Expr::ConstantExprKind::ClassTemplateArgument, "");
1542static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ContantExprKind_ImmediateInvocation == clang::Expr::ConstantExprKind::ImmediateInvocation, "");
15291543
15301544
15311545static_assert(sizeof(ZigClangAPValue) == sizeof(clang::APValue), "");
......@@ -2143,12 +2157,12 @@ bool ZigClangExpr_EvaluateAsFloat(const ZigClangExpr *self, ZigClangAPFloat **re
21432157}
21442158
21452159bool ZigClangExpr_EvaluateAsConstantExpr(const ZigClangExpr *self, ZigClangExprEvalResult *result,
2146 ZigClangExpr_ConstExprUsage usage, const struct ZigClangASTContext *ctx)
2160 ZigClangExpr_ConstantExprKind kind, const struct ZigClangASTContext *ctx)
21472161{
21482162 auto casted_self = reinterpret_cast<const clang::Expr *>(self);
21492163 auto casted_ctx = reinterpret_cast<const clang::ASTContext *>(ctx);
21502164 clang::Expr::EvalResult eval_result;
2151 if (!casted_self->EvaluateAsConstantExpr(eval_result, (clang::Expr::ConstExprUsage)usage, *casted_ctx)) {
2165 if (!casted_self->EvaluateAsConstantExpr(eval_result, *casted_ctx, (clang::Expr::ConstantExprKind)kind)) {
21522166 return false;
21532167 }
21542168 *result = bitcast(eval_result);
src/zig_clang.h+11-4
......@@ -523,6 +523,8 @@ enum ZigClangCK {
523523 ZigClangCK_IntegralCast,
524524 ZigClangCK_IntegralToBoolean,
525525 ZigClangCK_IntegralToFloating,
526 ZigClangCK_FloatingToFixedPoint,
527 ZigClangCK_FixedPointToFloating,
526528 ZigClangCK_FixedPointCast,
527529 ZigClangCK_FixedPointToIntegral,
528530 ZigClangCK_IntegralToFixedPoint,
......@@ -629,6 +631,7 @@ enum ZigClangDeclKind {
629631 ZigClangDeclMSGuid,
630632 ZigClangDeclOMPDeclareMapper,
631633 ZigClangDeclOMPDeclareReduction,
634 ZigClangDeclTemplateParamObject,
632635 ZigClangDeclUnresolvedUsingValue,
633636 ZigClangDeclOMPAllocate,
634637 ZigClangDeclOMPRequires,
......@@ -739,6 +742,8 @@ enum ZigClangBuiltinTypeKind {
739742 ZigClangBuiltinTypeSveFloat64x4,
740743 ZigClangBuiltinTypeSveBFloat16x4,
741744 ZigClangBuiltinTypeSveBool,
745 ZigClangBuiltinTypeVectorQuad,
746 ZigClangBuiltinTypeVectorPair,
742747 ZigClangBuiltinTypeVoid,
743748 ZigClangBuiltinTypeBool,
744749 ZigClangBuiltinTypeChar_U,
......@@ -897,9 +902,11 @@ enum ZigClangPreprocessedEntity_EntityKind {
897902 ZigClangPreprocessedEntity_InclusionDirectiveKind,
898903};
899904
900enum ZigClangExpr_ConstExprUsage {
901 ZigClangExpr_EvaluateForCodeGen,
902 ZigClangExpr_EvaluateForMangling,
905enum ZigClangExpr_ConstantExprKind {
906 ZigClangExpr_ContantExprKind_Normal,
907 ZigClangExpr_ContantExprKind_NonClassTemplateArgument,
908 ZigClangExpr_ContantExprKind_ClassTemplateArgument,
909 ZigClangExpr_ContantExprKind_ImmediateInvocation,
903910};
904911
905912enum ZigClangUnaryExprOrTypeTrait_Kind {
......@@ -1058,7 +1065,7 @@ ZIG_EXTERN_C bool ZigClangExpr_EvaluateAsBooleanCondition(const struct ZigClangE
10581065ZIG_EXTERN_C bool ZigClangExpr_EvaluateAsFloat(const struct ZigClangExpr *self,
10591066 ZigClangAPFloat **result, const struct ZigClangASTContext *ctx);
10601067ZIG_EXTERN_C bool ZigClangExpr_EvaluateAsConstantExpr(const struct ZigClangExpr *,
1061 struct ZigClangExprEvalResult *, ZigClangExpr_ConstExprUsage, const struct ZigClangASTContext *);
1068 struct ZigClangExprEvalResult *, ZigClangExpr_ConstantExprKind, const struct ZigClangASTContext *);
10621069
10631070ZIG_EXTERN_C const ZigClangExpr *ZigClangInitListExpr_getInit(const ZigClangInitListExpr *, unsigned);
10641071ZIG_EXTERN_C const ZigClangExpr *ZigClangInitListExpr_getArrayFiller(const ZigClangInitListExpr *);
src/zig_llvm.cpp+8-6
......@@ -600,8 +600,9 @@ void ZigLLVMDisposeDIBuilder(ZigLLVMDIBuilder *dbuilder) {
600600}
601601
602602void ZigLLVMSetCurrentDebugLocation(LLVMBuilderRef builder, int line, int column, ZigLLVMDIScope *scope) {
603 unwrap(builder)->SetCurrentDebugLocation(DebugLoc::get(
604 line, column, reinterpret_cast<DIScope*>(scope)));
603 DIScope* di_scope = reinterpret_cast<DIScope*>(scope);
604 DebugLoc debug_loc = DILocation::get(di_scope->getContext(), line, column, di_scope, nullptr, false);
605 unwrap(builder)->SetCurrentDebugLocation(debug_loc);
605606}
606607
607608void ZigLLVMClearCurrentDebugLocation(LLVMBuilderRef builder) {
......@@ -762,7 +763,8 @@ LLVMValueRef ZigLLVMInsertDeclare(ZigLLVMDIBuilder *dibuilder, LLVMValueRef stor
762763}
763764
764765ZigLLVMDILocation *ZigLLVMGetDebugLoc(unsigned line, unsigned col, ZigLLVMDIScope *scope) {
765 DebugLoc debug_loc = DebugLoc::get(line, col, reinterpret_cast<DIScope*>(scope), nullptr);
766 DIScope* di_scope = reinterpret_cast<DIScope*>(scope);
767 DebugLoc debug_loc = DILocation::get(di_scope->getContext(), line, col, di_scope, nullptr, false);
766768 return reinterpret_cast<ZigLLVMDILocation*>(debug_loc.get());
767769}
768770
......@@ -1180,6 +1182,7 @@ static_assert((Triple::ArchType)ZigLLVM_arc == Triple::arc, "");
11801182static_assert((Triple::ArchType)ZigLLVM_avr == Triple::avr, "");
11811183static_assert((Triple::ArchType)ZigLLVM_bpfel == Triple::bpfel, "");
11821184static_assert((Triple::ArchType)ZigLLVM_bpfeb == Triple::bpfeb, "");
1185static_assert((Triple::ArchType)ZigLLVM_csky == Triple::csky, "");
11831186static_assert((Triple::ArchType)ZigLLVM_hexagon == Triple::hexagon, "");
11841187static_assert((Triple::ArchType)ZigLLVM_mips == Triple::mips, "");
11851188static_assert((Triple::ArchType)ZigLLVM_mipsel == Triple::mipsel, "");
......@@ -1228,8 +1231,6 @@ static_assert((Triple::VendorType)ZigLLVM_UnknownVendor == Triple::UnknownVendor
12281231static_assert((Triple::VendorType)ZigLLVM_Apple == Triple::Apple, "");
12291232static_assert((Triple::VendorType)ZigLLVM_PC == Triple::PC, "");
12301233static_assert((Triple::VendorType)ZigLLVM_SCEI == Triple::SCEI, "");
1231static_assert((Triple::VendorType)ZigLLVM_BGP == Triple::BGP, "");
1232static_assert((Triple::VendorType)ZigLLVM_BGQ == Triple::BGQ, "");
12331234static_assert((Triple::VendorType)ZigLLVM_Freescale == Triple::Freescale, "");
12341235static_assert((Triple::VendorType)ZigLLVM_IBM == Triple::IBM, "");
12351236static_assert((Triple::VendorType)ZigLLVM_ImaginationTechnologies == Triple::ImaginationTechnologies, "");
......@@ -1261,11 +1262,11 @@ static_assert((Triple::OSType)ZigLLVM_NetBSD == Triple::NetBSD, "");
12611262static_assert((Triple::OSType)ZigLLVM_OpenBSD == Triple::OpenBSD, "");
12621263static_assert((Triple::OSType)ZigLLVM_Solaris == Triple::Solaris, "");
12631264static_assert((Triple::OSType)ZigLLVM_Win32 == Triple::Win32, "");
1265static_assert((Triple::OSType)ZigLLVM_ZOS == Triple::ZOS, "");
12641266static_assert((Triple::OSType)ZigLLVM_Haiku == Triple::Haiku, "");
12651267static_assert((Triple::OSType)ZigLLVM_Minix == Triple::Minix, "");
12661268static_assert((Triple::OSType)ZigLLVM_RTEMS == Triple::RTEMS, "");
12671269static_assert((Triple::OSType)ZigLLVM_NaCl == Triple::NaCl, "");
1268static_assert((Triple::OSType)ZigLLVM_CNK == Triple::CNK, "");
12691270static_assert((Triple::OSType)ZigLLVM_AIX == Triple::AIX, "");
12701271static_assert((Triple::OSType)ZigLLVM_CUDA == Triple::CUDA, "");
12711272static_assert((Triple::OSType)ZigLLVM_NVCL == Triple::NVCL, "");
......@@ -1308,6 +1309,7 @@ static_assert((Triple::EnvironmentType)ZigLLVM_LastEnvironmentType == Triple::La
13081309static_assert((Triple::ObjectFormatType)ZigLLVM_UnknownObjectFormat == Triple::UnknownObjectFormat, "");
13091310static_assert((Triple::ObjectFormatType)ZigLLVM_COFF == Triple::COFF, "");
13101311static_assert((Triple::ObjectFormatType)ZigLLVM_ELF == Triple::ELF, "");
1312static_assert((Triple::ObjectFormatType)ZigLLVM_GOFF == Triple::GOFF, "");
13111313static_assert((Triple::ObjectFormatType)ZigLLVM_MachO == Triple::MachO, "");
13121314static_assert((Triple::ObjectFormatType)ZigLLVM_Wasm == Triple::Wasm, "");
13131315static_assert((Triple::ObjectFormatType)ZigLLVM_XCOFF == Triple::XCOFF, "");
src/zig_llvm.h+3-3
......@@ -288,6 +288,7 @@ enum ZigLLVM_ArchType {
288288 ZigLLVM_avr, // AVR: Atmel AVR microcontroller
289289 ZigLLVM_bpfel, // eBPF or extended BPF or 64-bit BPF (little endian)
290290 ZigLLVM_bpfeb, // eBPF or extended BPF or 64-bit BPF (big endian)
291 ZigLLVM_csky, // CSKY: csky
291292 ZigLLVM_hexagon, // Hexagon: hexagon
292293 ZigLLVM_mips, // MIPS: mips, mipsallegrex, mipsr6
293294 ZigLLVM_mipsel, // MIPSEL: mipsel, mipsallegrexe, mipsr6el
......@@ -340,8 +341,6 @@ enum ZigLLVM_VendorType {
340341 ZigLLVM_Apple,
341342 ZigLLVM_PC,
342343 ZigLLVM_SCEI,
343 ZigLLVM_BGP,
344 ZigLLVM_BGQ,
345344 ZigLLVM_Freescale,
346345 ZigLLVM_IBM,
347346 ZigLLVM_ImaginationTechnologies,
......@@ -375,11 +374,11 @@ enum ZigLLVM_OSType {
375374 ZigLLVM_OpenBSD,
376375 ZigLLVM_Solaris,
377376 ZigLLVM_Win32,
377 ZigLLVM_ZOS,
378378 ZigLLVM_Haiku,
379379 ZigLLVM_Minix,
380380 ZigLLVM_RTEMS,
381381 ZigLLVM_NaCl, // Native Client
382 ZigLLVM_CNK, // BG/P Compute-Node Kernel
383382 ZigLLVM_AIX,
384383 ZigLLVM_CUDA, // NVIDIA CUDA
385384 ZigLLVM_NVCL, // NVIDIA OpenCL
......@@ -432,6 +431,7 @@ enum ZigLLVM_ObjectFormatType {
432431
433432 ZigLLVM_COFF,
434433 ZigLLVM_ELF,
434 ZigLLVM_GOFF,
435435 ZigLLVM_MachO,
436436 ZigLLVM_Wasm,
437437 ZigLLVM_XCOFF,