| author | |
| committer | |
| log | bd3a633e4d709e462f9435f94f9c6868980f7089 |
| tree | f0a17fc830c18031ed668c9284fd965199d49941 |
| parent | ce56ae8afe1fd00cc137375332014b8d8a8ef960 |
| parent | f77b0b90d8daedf30e86ab09d292158e0b9af353 |
| signature |
LLVM 108 files changed, 153 insertions(+), 92 deletions(-)
cmake/Findlld.cmake+3-3| ... | @@ -8,13 +8,13 @@ | ... | @@ -8,13 +8,13 @@ |
| 8 | 8 | ||
| 9 | find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h | 9 | find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h |
| 10 | PATHS | 10 | PATHS |
| 11 | /usr/lib/llvm-10.0/include | 11 | /usr/lib/llvm-10/include |
| 12 | /usr/local/llvm100/include | 12 | /usr/local/llvm100/include |
| 13 | /mingw64/include) | 13 | /mingw64/include) |
| 14 | 14 | ||
| 15 | find_library(LLD_LIBRARY NAMES lld-10.0 lld100 lld | 15 | find_library(LLD_LIBRARY NAMES lld-10.0 lld100 lld |
| 16 | PATHS | 16 | PATHS |
| 17 | /usr/lib/llvm-10.0/lib | 17 | /usr/lib/llvm-10/lib |
| 18 | /usr/local/llvm100/lib | 18 | /usr/local/llvm100/lib |
| 19 | ) | 19 | ) |
| 20 | if(EXISTS ${LLD_LIBRARY}) | 20 | if(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 | PATHS | 26 | PATHS |
| 27 | /usr/lib/llvm-10.0/lib | 27 | /usr/lib/llvm-10/lib |
| 28 | /usr/local/llvm100/lib | 28 | /usr/local/llvm100/lib |
| 29 | /mingw64/lib | 29 | /mingw64/lib |
| 30 | /c/msys64/mingw64/lib | 30 | /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) { |
| 5256 | 5256 | ||
| 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)); |
| 5261 | 5261 | ||
| 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 | } |
| 327 | 327 | ||
| 328 | static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, ""); | ||
| 329 | static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, ""); | ||
| 330 | static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, ""); | ||
| 331 | static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, ""); | ||
| 332 | static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, ""); | ||
| 328 | static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, ""); | 333 | static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, ""); |
| 329 | static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, ""); | 334 | static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, ""); |
| 330 | static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, ""); | ||
| 331 | static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, ""); | ||
| 332 | static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, ""); | ||
| 333 | static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, ""); | ||
| 334 | static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, ""); | ||
| 335 | static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, ""); | 335 | static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, ""); |
| 336 | static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, ""); | 336 | static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, ""); |
| 337 | static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, ""); | 337 | static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, ""); |
| 338 | static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, ""); | ||
| 339 | static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, ""); | ||
| 340 | static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, ""); | ||
| 338 | static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, ""); | 341 | static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, ""); |
| 339 | static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, ""); | 342 | static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, ""); |
| 340 | static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, ""); | 343 | static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, ""); |
| 341 | static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, ""); | ||
| 342 | static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, ""); | 344 | static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, ""); |
| 345 | static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, ""); | ||
| 346 | static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, ""); | ||
| 343 | static_assert((clang::Type::TypeClass)ZigClangType_ExtVector == clang::Type::ExtVector, ""); | 347 | static_assert((clang::Type::TypeClass)ZigClangType_ExtVector == clang::Type::ExtVector, ""); |
| 344 | static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, ""); | ||
| 345 | static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, ""); | 348 | static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, ""); |
| 346 | static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, ""); | 349 | static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, ""); |
| 347 | static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, ""); | 350 | static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, ""); |
| 348 | static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, ""); | 351 | static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, ""); |
| 352 | static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, ""); | ||
| 349 | static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, ""); | 353 | static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, ""); |
| 350 | static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, ""); | 354 | static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, ""); |
| 351 | static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, ""); | 355 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, ""); |
| 352 | static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, ""); | 356 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, ""); |
| 353 | static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, ""); | 357 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, ""); |
| 354 | static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, ""); | 358 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, ""); |
| 355 | static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, ""); | 359 | static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, ""); |
| 360 | static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, ""); | ||
| 361 | static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, ""); | ||
| 362 | static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, ""); | ||
| 363 | static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, ""); | ||
| 356 | static_assert((clang::Type::TypeClass)ZigClangType_Record == clang::Type::Record, ""); | 364 | static_assert((clang::Type::TypeClass)ZigClangType_Record == clang::Type::Record, ""); |
| 357 | static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, ""); | ||
| 358 | static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, ""); | ||
| 359 | static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, ""); | ||
| 360 | static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, ""); | ||
| 361 | static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParm == clang::Type::SubstTemplateTypeParm, ""); | 365 | static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParm == clang::Type::SubstTemplateTypeParm, ""); |
| 362 | static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParmPack == clang::Type::SubstTemplateTypeParmPack, ""); | 366 | static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParmPack == clang::Type::SubstTemplateTypeParmPack, ""); |
| 363 | static_assert((clang::Type::TypeClass)ZigClangType_TemplateSpecialization == clang::Type::TemplateSpecialization, ""); | 367 | static_assert((clang::Type::TypeClass)ZigClangType_TemplateSpecialization == clang::Type::TemplateSpecialization, ""); |
| 364 | static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, ""); | 368 | static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, ""); |
| 365 | static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, ""); | 369 | static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, ""); |
| 366 | static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, ""); | 370 | static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, ""); |
| 367 | static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, ""); | 371 | static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, ""); |
| 368 | static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, ""); | 372 | static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, ""); |
| 369 | static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, ""); | 373 | static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, ""); |
| 370 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, ""); | 374 | static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, ""); |
| 371 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, ""); | 375 | static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, ""); |
| 372 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, ""); | ||
| 373 | static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, ""); | ||
| 374 | static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, ""); | ||
| 375 | static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, ""); | ||
| 376 | 376 | ||
| 377 | // Detect additions to the enum | 377 | // Detect additions to the enum |
| 378 | void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) { | 378 | void 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 |
| 1147 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, ""); | 1159 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, ""); |
| 1148 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, ""); | 1160 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, ""); |
| 1149 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, ""); | 1161 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, ""); |
| 1162 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8 == clang::BuiltinType::SveInt8, ""); | ||
| 1163 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16 == clang::BuiltinType::SveInt16, ""); | ||
| 1164 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32 == clang::BuiltinType::SveInt32, ""); | ||
| 1165 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64 == clang::BuiltinType::SveInt64, ""); | ||
| 1166 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8 == clang::BuiltinType::SveUint8, ""); | ||
| 1167 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16 == clang::BuiltinType::SveUint16, ""); | ||
| 1168 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32 == clang::BuiltinType::SveUint32, ""); | ||
| 1169 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64 == clang::BuiltinType::SveUint64, ""); | ||
| 1170 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16 == clang::BuiltinType::SveFloat16, ""); | ||
| 1171 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32 == clang::BuiltinType::SveFloat32, ""); | ||
| 1172 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64 == clang::BuiltinType::SveFloat64, ""); | ||
| 1173 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, ""); | ||
| 1150 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, ""); | 1174 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, ""); |
| 1151 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, ""); | 1175 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, ""); |
| 1152 | static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, ""); | 1176 | static_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); |
| 1818 | 1843 | ||
| 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 | }; |
| 201 | 201 | ||
| 202 | enum ZigClangTypeClass { | 202 | enum 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 | }; |
| 252 | 252 | ||
| 253 | enum ZigClangStmtClass { | 253 | enum 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) { |
| 193 | 193 | ||
| 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>()); |
| 198 | 198 | ||
| 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); |
| 212 | 212 | ||
| 213 | if (Clang->getFrontendOpts().TimeTrace) | 213 | if (Clang->getFrontendOpts().TimeTrace) |
| 214 | llvm::timeTraceProfilerInitialize(); | 214 | llvm::timeTraceProfilerInitialize(/* granularity (us) */ 500); |
| 215 | 215 | ||
| 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; |
| 175 | 175 | ||
| 176 | // Parse the arguments. | 176 | // Parse the arguments. |
| 177 | std::unique_ptr<OptTable> OptTbl(createDriverOptTable()); | 177 | const OptTable &OptTbl = getDriverOptTable(); |
| 178 | 178 | ||
| 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); |
| 183 | 183 | ||
| 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 | else | 197 | 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); |
| 313 | 313 | ||
| 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)); |
| 447 | 447 | ||
| 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 | } |
| 462 | 462 | ||
| ... | @@ -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; |
| 570 | 570 | ||
| 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, |
| 268 | static DiagnosticOptions * | 268 | static DiagnosticOptions * |
| 269 | CreateAndPopulateDiagOpts(ArrayRef<const char *> argv) { | 269 | CreateAndPopulateDiagOpts(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. |