authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-12 12:10:22-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2019-10-12 12:10:22-04:00
logbd3a633e4d709e462f9435f94f9c6868980f7089
treef0a17fc830c18031ed668c9284fd965199d49941
parentce56ae8afe1fd00cc137375332014b8d8a8ef960
parentf77b0b90d8daedf30e86ab09d292158e0b9af353
signature Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #3441 from LemonBoy/llvm10

LLVM 10

8 files changed, 153 insertions(+), 92 deletions(-)

cmake/Findlld.cmake+3-3
...@@ -8,13 +8,13 @@...@@ -8,13 +8,13 @@
88
9find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h9find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
10 PATHS10 PATHS
11 /usr/lib/llvm-10.0/include11 /usr/lib/llvm-10/include
12 /usr/local/llvm100/include12 /usr/local/llvm100/include
13 /mingw64/include)13 /mingw64/include)
1414
15find_library(LLD_LIBRARY NAMES lld-10.0 lld100 lld15find_library(LLD_LIBRARY NAMES lld-10.0 lld100 lld
16 PATHS16 PATHS
17 /usr/lib/llvm-10.0/lib17 /usr/lib/llvm-10/lib
18 /usr/local/llvm100/lib18 /usr/local/llvm100/lib
19)19)
20if(EXISTS ${LLD_LIBRARY})20if(EXISTS ${LLD_LIBRARY})
...@@ -24,7 +24,7 @@ else()...@@ -24,7 +24,7 @@ else()
24 string(TOUPPER ${_libname_} _prettylibname_)24 string(TOUPPER ${_libname_} _prettylibname_)
25 find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}25 find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}
26 PATHS26 PATHS
27 /usr/lib/llvm-10.0/lib27 /usr/lib/llvm-10/lib
28 /usr/local/llvm100/lib28 /usr/local/llvm100/lib
29 /mingw64/lib29 /mingw64/lib
30 /c/msys64/mingw64/lib30 /c/msys64/mingw64/lib
src/codegen.cpp+1-1
...@@ -5256,7 +5256,7 @@ static LLVMValueRef get_frame_address_fn_val(CodeGen *g) {...@@ -5256,7 +5256,7 @@ static LLVMValueRef get_frame_address_fn_val(CodeGen *g) {
52565256
5257 LLVMTypeRef fn_type = LLVMFunctionType(get_llvm_type(g, return_type),5257 LLVMTypeRef fn_type = LLVMFunctionType(get_llvm_type(g, return_type),
5258 &g->builtin_types.entry_i32->llvm_type, 1, false);5258 &g->builtin_types.entry_i32->llvm_type, 1, false);
5259 g->frame_address_fn_val = LLVMAddFunction(g->module, "llvm.frameaddress", fn_type);5259 g->frame_address_fn_val = LLVMAddFunction(g->module, "llvm.frameaddress.p0i8", fn_type);
5260 assert(LLVMGetIntrinsicID(g->frame_address_fn_val));5260 assert(LLVMGetIntrinsicID(g->frame_address_fn_val));
52615261
5262 return g->frame_address_fn_val;5262 return g->frame_address_fn_val;
src/translate_c.cpp+24
...@@ -1038,6 +1038,18 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc...@@ -1038,6 +1038,18 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc
1038 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:1038 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
1039 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:1039 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
1040 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:1040 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
1041 case ZigClangBuiltinTypeSveInt8:
1042 case ZigClangBuiltinTypeSveInt16:
1043 case ZigClangBuiltinTypeSveInt32:
1044 case ZigClangBuiltinTypeSveInt64:
1045 case ZigClangBuiltinTypeSveUint8:
1046 case ZigClangBuiltinTypeSveUint16:
1047 case ZigClangBuiltinTypeSveUint32:
1048 case ZigClangBuiltinTypeSveUint64:
1049 case ZigClangBuiltinTypeSveFloat16:
1050 case ZigClangBuiltinTypeSveFloat32:
1051 case ZigClangBuiltinTypeSveFloat64:
1052 case ZigClangBuiltinTypeSveBool:
1041 emit_warning(c, source_loc, "unsupported builtin type");1053 emit_warning(c, source_loc, "unsupported builtin type");
1042 return nullptr;1054 return nullptr;
1043 }1055 }
...@@ -2900,6 +2912,18 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *...@@ -2900,6 +2912,18 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
2900 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:2912 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
2901 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:2913 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
2902 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:2914 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
2915 case ZigClangBuiltinTypeSveInt8:
2916 case ZigClangBuiltinTypeSveInt16:
2917 case ZigClangBuiltinTypeSveInt32:
2918 case ZigClangBuiltinTypeSveInt64:
2919 case ZigClangBuiltinTypeSveUint8:
2920 case ZigClangBuiltinTypeSveUint16:
2921 case ZigClangBuiltinTypeSveUint32:
2922 case ZigClangBuiltinTypeSveUint64:
2923 case ZigClangBuiltinTypeSveFloat16:
2924 case ZigClangBuiltinTypeSveFloat32:
2925 case ZigClangBuiltinTypeSveFloat64:
2926 case ZigClangBuiltinTypeSveBool:
2903 return res;2927 return res;
2904 }2928 }
2905 break;2929 break;
src/zig_clang.cpp+62-37
...@@ -325,54 +325,54 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {...@@ -325,54 +325,54 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
325 }325 }
326}326}
327327
328static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, "");
329static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, "");
330static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, "");
331static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, "");
332static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, "");
328static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, "");333static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, "");
329static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, "");334static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, "");
330static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, "");
331static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, "");
332static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, "");
333static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, "");
334static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, "");
335static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, "");335static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, "");
336static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, "");336static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, "");
337static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, "");337static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, "");
338static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, "");
339static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, "");
340static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, "");
338static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, "");341static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, "");
339static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, "");342static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, "");
340static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, "");343static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, "");
341static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, "");
342static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, "");344static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, "");
345static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, "");
346static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, "");
343static_assert((clang::Type::TypeClass)ZigClangType_ExtVector == clang::Type::ExtVector, "");347static_assert((clang::Type::TypeClass)ZigClangType_ExtVector == clang::Type::ExtVector, "");
344static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
345static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");348static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
346static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, "");349static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
347static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, "");350static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, "");
348static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, "");351static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
352static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, "");
349static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");353static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
350static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, "");354static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, "");
351static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, "");355static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, "");
352static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, "");356static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, "");
353static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, "");357static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, "");
354static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, "");358static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, "");
355static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, "");359static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, "");
360static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, "");
361static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, "");
362static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, "");
363static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, "");
356static_assert((clang::Type::TypeClass)ZigClangType_Record == clang::Type::Record, "");364static_assert((clang::Type::TypeClass)ZigClangType_Record == clang::Type::Record, "");
357static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, "");
358static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, "");
359static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, "");
360static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, "");
361static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParm == clang::Type::SubstTemplateTypeParm, "");365static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParm == clang::Type::SubstTemplateTypeParm, "");
362static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParmPack == clang::Type::SubstTemplateTypeParmPack, "");366static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParmPack == clang::Type::SubstTemplateTypeParmPack, "");
363static_assert((clang::Type::TypeClass)ZigClangType_TemplateSpecialization == clang::Type::TemplateSpecialization, "");367static_assert((clang::Type::TypeClass)ZigClangType_TemplateSpecialization == clang::Type::TemplateSpecialization, "");
364static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, "");368static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, "");
365static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, "");369static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, "");
366static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");370static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, "");
367static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, "");371static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, "");
368static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, "");372static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, "");
369static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, "");373static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, "");
370static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, "");374static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, "");
371static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, "");375static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, "");
372static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, "");
373static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, "");
374static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, "");
375static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, "");
376376
377// Detect additions to the enum377// Detect additions to the enum
378void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {378void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
...@@ -1027,6 +1027,18 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1027,6 +1027,18 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1027 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:1027 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
1028 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:1028 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
1029 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:1029 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
1030 case clang::BuiltinType::SveInt8:
1031 case clang::BuiltinType::SveInt16:
1032 case clang::BuiltinType::SveInt32:
1033 case clang::BuiltinType::SveInt64:
1034 case clang::BuiltinType::SveUint8:
1035 case clang::BuiltinType::SveUint16:
1036 case clang::BuiltinType::SveUint32:
1037 case clang::BuiltinType::SveUint64:
1038 case clang::BuiltinType::SveFloat16:
1039 case clang::BuiltinType::SveFloat32:
1040 case clang::BuiltinType::SveFloat64:
1041 case clang::BuiltinType::SveBool:
1030 case clang::BuiltinType::Void:1042 case clang::BuiltinType::Void:
1031 case clang::BuiltinType::Bool:1043 case clang::BuiltinType::Bool:
1032 case clang::BuiltinType::Char_U:1044 case clang::BuiltinType::Char_U:
...@@ -1147,6 +1159,18 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCIm...@@ -1147,6 +1159,18 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCIm
1147static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, "");1159static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, "");
1148static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, "");1160static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, "");
1149static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, "");1161static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, "");
1162static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8 == clang::BuiltinType::SveInt8, "");
1163static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16 == clang::BuiltinType::SveInt16, "");
1164static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32 == clang::BuiltinType::SveInt32, "");
1165static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64 == clang::BuiltinType::SveInt64, "");
1166static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8 == clang::BuiltinType::SveUint8, "");
1167static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16 == clang::BuiltinType::SveUint16, "");
1168static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32 == clang::BuiltinType::SveUint32, "");
1169static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64 == clang::BuiltinType::SveUint64, "");
1170static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16 == clang::BuiltinType::SveFloat16, "");
1171static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32 == clang::BuiltinType::SveFloat32, "");
1172static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64 == clang::BuiltinType::SveFloat64, "");
1173static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");
1150static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");1174static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
1151static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");1175static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
1152static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");1176static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
...@@ -1807,14 +1831,15 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char...@@ -1807,14 +1831,15 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
1807 bool allow_pch_with_compiler_errors = false;1831 bool allow_pch_with_compiler_errors = false;
1808 bool single_file_parse = false;1832 bool single_file_parse = false;
1809 bool for_serialization = false;1833 bool for_serialization = false;
1834 bool retain_excluded_conditional_blocks = false;
1810 std::unique_ptr<clang::ASTUnit> *err_unit = new std::unique_ptr<clang::ASTUnit>();1835 std::unique_ptr<clang::ASTUnit> *err_unit = new std::unique_ptr<clang::ASTUnit>();
1811 clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(1836 clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(
1812 args_begin, args_end,1837 args_begin, args_end,
1813 pch_container_ops, diags, resources_path,1838 pch_container_ops, diags, resources_path,
1814 only_local_decls, clang::CaptureDiagsKind::All, clang::None, true, 0, clang::TU_Complete,1839 only_local_decls, clang::CaptureDiagsKind::All, clang::None, true, 0, clang::TU_Complete,
1815 false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,1840 false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,
1816 single_file_parse, user_files_are_volatile, for_serialization, clang::None, err_unit,1841 single_file_parse, user_files_are_volatile, for_serialization, retain_excluded_conditional_blocks,
1817 nullptr);1842 clang::None, err_unit, nullptr);
18181843
1819 // Early failures in LoadFromCommandLine may return with ErrUnit unset.1844 // Early failures in LoadFromCommandLine may return with ErrUnit unset.
1820 if (!ast_unit && !err_unit) {1845 if (!ast_unit && !err_unit) {
src/zig_clang.h+48-36
...@@ -200,54 +200,54 @@ enum ZigClangUO {...@@ -200,54 +200,54 @@ enum ZigClangUO {
200};200};
201201
202enum ZigClangTypeClass {202enum ZigClangTypeClass {
203 ZigClangType_Adjusted,
204 ZigClangType_Atomic,
205 ZigClangType_Attributed,
206 ZigClangType_Auto,
207 ZigClangType_BlockPointer,
203 ZigClangType_Builtin,208 ZigClangType_Builtin,
204 ZigClangType_Complex,209 ZigClangType_Complex,
205 ZigClangType_Pointer,
206 ZigClangType_BlockPointer,
207 ZigClangType_LValueReference,
208 ZigClangType_RValueReference,
209 ZigClangType_MemberPointer,
210 ZigClangType_ConstantArray,210 ZigClangType_ConstantArray,
211 ZigClangType_IncompleteArray,211 ZigClangType_Decayed,
212 ZigClangType_VariableArray,212 ZigClangType_Decltype,
213 ZigClangType_DeducedTemplateSpecialization,
214 ZigClangType_DependentAddressSpace,
215 ZigClangType_DependentName,
213 ZigClangType_DependentSizedArray,216 ZigClangType_DependentSizedArray,
214 ZigClangType_DependentSizedExtVector,217 ZigClangType_DependentSizedExtVector,
215 ZigClangType_DependentAddressSpace,218 ZigClangType_DependentTemplateSpecialization,
216 ZigClangType_Vector,
217 ZigClangType_DependentVector,219 ZigClangType_DependentVector,
220 ZigClangType_Elaborated,
221 ZigClangType_Enum,
218 ZigClangType_ExtVector,222 ZigClangType_ExtVector,
219 ZigClangType_FunctionProto,
220 ZigClangType_FunctionNoProto,223 ZigClangType_FunctionNoProto,
221 ZigClangType_UnresolvedUsing,224 ZigClangType_FunctionProto,
222 ZigClangType_Paren,225 ZigClangType_IncompleteArray,
223 ZigClangType_Typedef,
224 ZigClangType_MacroQualified,
225 ZigClangType_Adjusted,
226 ZigClangType_Decayed,
227 ZigClangType_TypeOfExpr,
228 ZigClangType_TypeOf,
229 ZigClangType_Decltype,
230 ZigClangType_UnaryTransform,
231 ZigClangType_Record,
232 ZigClangType_Enum,
233 ZigClangType_Elaborated,
234 ZigClangType_Attributed,
235 ZigClangType_TemplateTypeParm,
236 ZigClangType_SubstTemplateTypeParm,
237 ZigClangType_SubstTemplateTypeParmPack,
238 ZigClangType_TemplateSpecialization,
239 ZigClangType_Auto,
240 ZigClangType_DeducedTemplateSpecialization,
241 ZigClangType_InjectedClassName,226 ZigClangType_InjectedClassName,
242 ZigClangType_DependentName,227 ZigClangType_LValueReference,
243 ZigClangType_DependentTemplateSpecialization,228 ZigClangType_MacroQualified,
244 ZigClangType_PackExpansion,229 ZigClangType_MemberPointer,
245 ZigClangType_ObjCTypeParam,
246 ZigClangType_ObjCObject,
247 ZigClangType_ObjCInterface,230 ZigClangType_ObjCInterface,
248 ZigClangType_ObjCObjectPointer,231 ZigClangType_ObjCObjectPointer,
232 ZigClangType_ObjCObject,
233 ZigClangType_ObjCTypeParam,
234 ZigClangType_PackExpansion,
235 ZigClangType_Paren,
249 ZigClangType_Pipe,236 ZigClangType_Pipe,
250 ZigClangType_Atomic,237 ZigClangType_Pointer,
238 ZigClangType_RValueReference,
239 ZigClangType_Record,
240 ZigClangType_SubstTemplateTypeParmPack,
241 ZigClangType_SubstTemplateTypeParm,
242 ZigClangType_TemplateSpecialization,
243 ZigClangType_TemplateTypeParm,
244 ZigClangType_TypeOfExpr,
245 ZigClangType_TypeOf,
246 ZigClangType_Typedef,
247 ZigClangType_UnaryTransform,
248 ZigClangType_UnresolvedUsing,
249 ZigClangType_VariableArray,
250 ZigClangType_Vector,
251};251};
252252
253enum ZigClangStmtClass {253enum ZigClangStmtClass {
...@@ -646,6 +646,18 @@ enum ZigClangBuiltinTypeKind {...@@ -646,6 +646,18 @@ enum ZigClangBuiltinTypeKind {
646 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout,646 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout,
647 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin,647 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin,
648 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin,648 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin,
649 ZigClangBuiltinTypeSveInt8,
650 ZigClangBuiltinTypeSveInt16,
651 ZigClangBuiltinTypeSveInt32,
652 ZigClangBuiltinTypeSveInt64,
653 ZigClangBuiltinTypeSveUint8,
654 ZigClangBuiltinTypeSveUint16,
655 ZigClangBuiltinTypeSveUint32,
656 ZigClangBuiltinTypeSveUint64,
657 ZigClangBuiltinTypeSveFloat16,
658 ZigClangBuiltinTypeSveFloat32,
659 ZigClangBuiltinTypeSveFloat64,
660 ZigClangBuiltinTypeSveBool,
649 ZigClangBuiltinTypeVoid,661 ZigClangBuiltinTypeVoid,
650 ZigClangBuiltinTypeBool,662 ZigClangBuiltinTypeBool,
651 ZigClangBuiltinTypeChar_U,663 ZigClangBuiltinTypeChar_U,
src/zig_clang_cc1_main.cpp+4-4
...@@ -193,8 +193,8 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {...@@ -193,8 +193,8 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
193193
194 // Register the support for object-file-wrapped Clang modules.194 // Register the support for object-file-wrapped Clang modules.
195 auto PCHOps = Clang->getPCHContainerOperations();195 auto PCHOps = Clang->getPCHContainerOperations();
196 PCHOps->registerWriter(llvm::make_unique<ObjectFilePCHContainerWriter>());196 PCHOps->registerWriter(std::make_unique<ObjectFilePCHContainerWriter>());
197 PCHOps->registerReader(llvm::make_unique<ObjectFilePCHContainerReader>());197 PCHOps->registerReader(std::make_unique<ObjectFilePCHContainerReader>());
198198
199 // Initialize targets first, so that --version shows registered targets.199 // Initialize targets first, so that --version shows registered targets.
200 llvm::InitializeAllTargets();200 llvm::InitializeAllTargets();
...@@ -208,10 +208,10 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {...@@ -208,10 +208,10 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
208 TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer;208 TextDiagnosticBuffer *DiagsBuffer = new TextDiagnosticBuffer;
209 DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagsBuffer);209 DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagsBuffer);
210 bool Success = CompilerInvocation::CreateFromArgs(210 bool Success = CompilerInvocation::CreateFromArgs(
211 Clang->getInvocation(), Argv.begin(), Argv.end(), Diags);211 Clang->getInvocation(), Argv, Diags);
212212
213 if (Clang->getFrontendOpts().TimeTrace)213 if (Clang->getFrontendOpts().TimeTrace)
214 llvm::timeTraceProfilerInitialize();214 llvm::timeTraceProfilerInitialize(/* granularity (us) */ 500);
215215
216 // --print-supported-cpus takes priority over the actual compilation.216 // --print-supported-cpus takes priority over the actual compilation.
217 if (Clang->getFrontendOpts().PrintSupportedCPUs)217 if (Clang->getFrontendOpts().PrintSupportedCPUs)
src/zig_clang_cc1as_main.cpp+9-9
...@@ -174,11 +174,11 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,...@@ -174,11 +174,11 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
174 bool Success = true;174 bool Success = true;
175175
176 // Parse the arguments.176 // Parse the arguments.
177 std::unique_ptr<OptTable> OptTbl(createDriverOptTable());177 const OptTable &OptTbl = getDriverOptTable();
178178
179 const unsigned IncludedFlagsBitmask = options::CC1AsOption;179 const unsigned IncludedFlagsBitmask = options::CC1AsOption;
180 unsigned MissingArgIndex, MissingArgCount;180 unsigned MissingArgIndex, MissingArgCount;
181 InputArgList Args = OptTbl->ParseArgs(Argv, MissingArgIndex, MissingArgCount,181 InputArgList Args = OptTbl.ParseArgs(Argv, MissingArgIndex, MissingArgCount,
182 IncludedFlagsBitmask);182 IncludedFlagsBitmask);
183183
184 // Check for missing argument error.184 // Check for missing argument error.
...@@ -192,7 +192,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,...@@ -192,7 +192,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
192 for (const Arg *A : Args.filtered(OPT_UNKNOWN)) {192 for (const Arg *A : Args.filtered(OPT_UNKNOWN)) {
193 auto ArgString = A->getAsString(Args);193 auto ArgString = A->getAsString(Args);
194 std::string Nearest;194 std::string Nearest;
195 if (OptTbl->findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1)195 if (OptTbl.findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1)
196 Diags.Report(diag::err_drv_unknown_argument) << ArgString;196 Diags.Report(diag::err_drv_unknown_argument) << ArgString;
197 else197 else
198 Diags.Report(diag::err_drv_unknown_argument_with_suggestion)198 Diags.Report(diag::err_drv_unknown_argument_with_suggestion)
...@@ -312,7 +312,7 @@ getOutputStream(StringRef Path, DiagnosticsEngine &Diags, bool Binary) {...@@ -312,7 +312,7 @@ getOutputStream(StringRef Path, DiagnosticsEngine &Diags, bool Binary) {
312 sys::RemoveFileOnSignal(Path);312 sys::RemoveFileOnSignal(Path);
313313
314 std::error_code EC;314 std::error_code EC;
315 auto Out = llvm::make_unique<raw_fd_ostream>(315 auto Out = std::make_unique<raw_fd_ostream>(
316 Path, EC, (Binary ? sys::fs::F_None : sys::fs::F_Text));316 Path, EC, (Binary ? sys::fs::F_None : sys::fs::F_Text));
317 if (EC) {317 if (EC) {
318 Diags.Report(diag::err_fe_unable_to_open_output) << Path << EC.message();318 Diags.Report(diag::err_fe_unable_to_open_output) << Path << EC.message();
...@@ -445,7 +445,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,...@@ -445,7 +445,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,
445 std::unique_ptr<MCAsmBackend> MAB(445 std::unique_ptr<MCAsmBackend> MAB(
446 TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions));446 TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions));
447447
448 auto FOut = llvm::make_unique<formatted_raw_ostream>(*Out);448 auto FOut = std::make_unique<formatted_raw_ostream>(*Out);
449 Str.reset(TheTarget->createAsmStreamer(449 Str.reset(TheTarget->createAsmStreamer(
450 Ctx, std::move(FOut), /*asmverbose*/ true,450 Ctx, std::move(FOut), /*asmverbose*/ true,
451 /*useDwarfDirectory*/ true, IP, std::move(CE), std::move(MAB),451 /*useDwarfDirectory*/ true, IP, std::move(CE), std::move(MAB),
...@@ -456,7 +456,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,...@@ -456,7 +456,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts,
456 assert(Opts.OutputType == AssemblerInvocation::FT_Obj &&456 assert(Opts.OutputType == AssemblerInvocation::FT_Obj &&
457 "Invalid file type!");457 "Invalid file type!");
458 if (!FDOS->supportsSeeking()) {458 if (!FDOS->supportsSeeking()) {
459 BOS = make_unique<buffer_ostream>(*FDOS);459 BOS = std::make_unique<buffer_ostream>(*FDOS);
460 Out = BOS.get();460 Out = BOS.get();
461 }461 }
462462
...@@ -569,8 +569,8 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {...@@ -569,8 +569,8 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
569 return 1;569 return 1;
570570
571 if (Asm.ShowHelp) {571 if (Asm.ShowHelp) {
572 std::unique_ptr<OptTable> Opts(driver::createDriverOptTable());572 const OptTable &Opts = getDriverOptTable();
573 Opts->PrintHelp(llvm::outs(), "clang -cc1as [options] file...",573 Opts.PrintHelp(llvm::outs(), "clang -cc1as [options] file...",
574 "Clang Integrated Assembler",574 "Clang Integrated Assembler",
575 /*Include=*/driver::options::CC1AsOption, /*Exclude=*/0,575 /*Include=*/driver::options::CC1AsOption, /*Exclude=*/0,
576 /*ShowAllAliases=*/false);576 /*ShowAllAliases=*/false);
...@@ -590,7 +590,7 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {...@@ -590,7 +590,7 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
590 // FIXME: Remove this, one day.590 // FIXME: Remove this, one day.
591 if (!Asm.LLVMArgs.empty()) {591 if (!Asm.LLVMArgs.empty()) {
592 unsigned NumArgs = Asm.LLVMArgs.size();592 unsigned NumArgs = Asm.LLVMArgs.size();
593 auto Args = llvm::make_unique<const char*[]>(NumArgs + 2);593 auto Args = std::make_unique<const char*[]>(NumArgs + 2);
594 Args[0] = "clang (LLVM option parsing)";594 Args[0] = "clang (LLVM option parsing)";
595 for (unsigned i = 0; i != NumArgs; ++i)595 for (unsigned i = 0; i != NumArgs; ++i)
596 Args[i + 1] = Asm.LLVMArgs[i].c_str();596 Args[i + 1] = Asm.LLVMArgs[i].c_str();
src/zig_clang_driver.cpp+2-2
...@@ -268,10 +268,10 @@ static void FixupDiagPrefixExeName(TextDiagnosticPrinter *DiagClient,...@@ -268,10 +268,10 @@ static void FixupDiagPrefixExeName(TextDiagnosticPrinter *DiagClient,
268static DiagnosticOptions *268static DiagnosticOptions *
269CreateAndPopulateDiagOpts(ArrayRef<const char *> argv) {269CreateAndPopulateDiagOpts(ArrayRef<const char *> argv) {
270 auto *DiagOpts = new DiagnosticOptions;270 auto *DiagOpts = new DiagnosticOptions;
271 std::unique_ptr<OptTable> Opts(createDriverOptTable());271 const OptTable &Opts = getDriverOptTable();
272 unsigned MissingArgIndex, MissingArgCount;272 unsigned MissingArgIndex, MissingArgCount;
273 InputArgList Args =273 InputArgList Args =
274 Opts->ParseArgs(argv.slice(1), MissingArgIndex, MissingArgCount);274 Opts.ParseArgs(argv.slice(1), MissingArgIndex, MissingArgCount);
275 // We ignore MissingArgCount and the return value of ParseDiagnosticArgs.275 // We ignore MissingArgCount and the return value of ParseDiagnosticArgs.
276 // Any errors that would be diagnosed here will also be diagnosed later,276 // Any errors that would be diagnosed here will also be diagnosed later,
277 // when the DiagnosticsEngine actually exists.277 // when the DiagnosticsEngine actually exists.