From 4e7effd3d38894f4d00bb0bb51ed34e237a4167e Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 4 Sep 2016 18:30:40 -0700 Subject: port to llvm 3.9 --- src/parseh.cpp | 75 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 20 deletions(-) (limited to 'src/parseh.cpp') diff --git a/src/parseh.cpp b/src/parseh.cpp index 11015b8133..fb2605a0e6 100644 --- a/src/parseh.cpp +++ b/src/parseh.cpp @@ -408,25 +408,7 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const case BuiltinType::ObjCId: case BuiltinType::ObjCClass: case BuiltinType::ObjCSel: - case BuiltinType::OCLImage1d: - case BuiltinType::OCLImage1dArray: - case BuiltinType::OCLImage1dBuffer: - case BuiltinType::OCLImage2d: - case BuiltinType::OCLImage2dArray: - case BuiltinType::OCLImage2dArrayDepth: - case BuiltinType::OCLImage2dDepth: - case BuiltinType::OCLImage2dMSAA: - case BuiltinType::OCLImage2dArrayMSAA: - case BuiltinType::OCLImage2dMSAADepth: - case BuiltinType::OCLImage2dArrayMSAADepth: - case BuiltinType::OCLClkEvent: - case BuiltinType::OCLQueue: - case BuiltinType::OCLNDRange: - case BuiltinType::OCLReserveID: case BuiltinType::OMPArraySection: - case BuiltinType::OCLImage3d: - case BuiltinType::OCLSampler: - case BuiltinType::OCLEvent: case BuiltinType::Dependent: case BuiltinType::Overload: case BuiltinType::BoundMember: @@ -434,6 +416,50 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const case BuiltinType::UnknownAny: case BuiltinType::BuiltinFn: case BuiltinType::ARCUnbridgedCast: + + case BuiltinType::OCLImage1dRO: + case BuiltinType::OCLImage1dArrayRO: + case BuiltinType::OCLImage1dBufferRO: + case BuiltinType::OCLImage2dRO: + case BuiltinType::OCLImage2dArrayRO: + case BuiltinType::OCLImage2dDepthRO: + case BuiltinType::OCLImage2dArrayDepthRO: + case BuiltinType::OCLImage2dMSAARO: + case BuiltinType::OCLImage2dArrayMSAARO: + case BuiltinType::OCLImage2dMSAADepthRO: + case BuiltinType::OCLImage2dArrayMSAADepthRO: + case BuiltinType::OCLImage3dRO: + case BuiltinType::OCLImage1dWO: + case BuiltinType::OCLImage1dArrayWO: + case BuiltinType::OCLImage1dBufferWO: + case BuiltinType::OCLImage2dWO: + case BuiltinType::OCLImage2dArrayWO: + case BuiltinType::OCLImage2dDepthWO: + case BuiltinType::OCLImage2dArrayDepthWO: + case BuiltinType::OCLImage2dMSAAWO: + case BuiltinType::OCLImage2dArrayMSAAWO: + case BuiltinType::OCLImage2dMSAADepthWO: + case BuiltinType::OCLImage2dArrayMSAADepthWO: + case BuiltinType::OCLImage3dWO: + case BuiltinType::OCLImage1dRW: + case BuiltinType::OCLImage1dArrayRW: + case BuiltinType::OCLImage1dBufferRW: + case BuiltinType::OCLImage2dRW: + case BuiltinType::OCLImage2dArrayRW: + case BuiltinType::OCLImage2dDepthRW: + case BuiltinType::OCLImage2dArrayDepthRW: + case BuiltinType::OCLImage2dMSAARW: + case BuiltinType::OCLImage2dArrayMSAARW: + case BuiltinType::OCLImage2dMSAADepthRW: + case BuiltinType::OCLImage2dArrayMSAADepthRW: + case BuiltinType::OCLImage3dRW: + case BuiltinType::Float128: + case BuiltinType::OCLSampler: + case BuiltinType::OCLEvent: + case BuiltinType::OCLClkEvent: + case BuiltinType::OCLQueue: + case BuiltinType::OCLNDRange: + case BuiltinType::OCLReserveID: emit_warning(c, decl, "missed a builtin type"); return c->codegen->builtin_types.entry_invalid; } @@ -554,8 +580,17 @@ static TypeTableEntry *resolve_type_with_table(Context *c, const Type *ty, const case CC_SpirFunction: // default for OpenCL functions on SPIR target emit_warning(c, decl, "function type has SPIR function calling convention"); return c->codegen->builtin_types.entry_invalid; - case CC_SpirKernel: // inferred for OpenCL kernels on SPIR target - emit_warning(c, decl, "function type has SPIR kernel calling convention"); + case CC_OpenCLKernel: + emit_warning(c, decl, "function type has OpenCLKernel calling convention"); + return c->codegen->builtin_types.entry_invalid; + case CC_Swift: + emit_warning(c, decl, "function type has Swift calling convention"); + return c->codegen->builtin_types.entry_invalid; + case CC_PreserveMost: + emit_warning(c, decl, "function type has PreserveMost calling convention"); + return c->codegen->builtin_types.entry_invalid; + case CC_PreserveAll: + emit_warning(c, decl, "function type has PreserveAll calling convention"); return c->codegen->builtin_types.entry_invalid; } -- cgit v1.2.3 From 4979e606c36fdca886f82b0dd8c0db17374ab8f6 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 5 Sep 2016 16:18:49 -0400 Subject: fix gcc 5.4.0compile errors --- src/analyze.cpp | 2 +- src/codegen.cpp | 4 ++-- src/parseh.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/parseh.cpp') diff --git a/src/analyze.cpp b/src/analyze.cpp index e1728448e3..3064ad359d 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -6026,7 +6026,7 @@ static TypeTableEntry *analyze_switch_expr(CodeGen *g, ImportTableEntry *import, int *field_use_counts = nullptr; - HashMap err_use_nodes; + HashMap err_use_nodes = {}; if (expr_type->id == TypeTableEntryIdEnum) { field_use_counts = allocate(expr_type->data.enumeration.field_count); } else if (expr_type->id == TypeTableEntryIdErrorUnion) { diff --git a/src/codegen.cpp b/src/codegen.cpp index 6b748634f1..9b0e61fdaf 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -2757,7 +2757,7 @@ static LLVMValueRef gen_if_var_expr(CodeGen *g, AstNode *node) { static LLVMValueRef gen_block(CodeGen *g, AstNode *block_node, TypeTableEntry *implicit_return_type) { assert(block_node->type == NodeTypeBlock); - LLVMValueRef return_value; + LLVMValueRef return_value = nullptr; for (int i = 0; i < block_node->data.block.statements.length; i += 1) { AstNode *statement_node = block_node->data.block.statements.at(i); return_value = gen_expr(g, statement_node); @@ -3301,7 +3301,7 @@ static LLVMValueRef gen_var_decl_expr(CodeGen *g, AstNode *node) { } } - LLVMValueRef init_val; + LLVMValueRef init_val = nullptr; TypeTableEntry *init_val_type; return gen_var_decl_raw(g, node, &node->data.variable_declaration, false, &init_val, &init_val_type, false); } diff --git a/src/parseh.cpp b/src/parseh.cpp index fb2605a0e6..64838bb496 100644 --- a/src/parseh.cpp +++ b/src/parseh.cpp @@ -1205,7 +1205,7 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) { emit_warning(c, var_decl, "ignoring variable '%s' - unable to evaluate initializer\n", buf_ptr(name)); return; } - AstNode *init_node; + AstNode *init_node = nullptr; switch (ap_value->getKind()) { case APValue::Int: { -- cgit v1.2.3