| 1506 | } |
| 1507 | |
| 1508 | void SlotDescriptor::CodegenWriteCollectionStructChild(LlvmCodeGen* codegen, |
| 1509 | LlvmBuilder* builder, llvm::Value* master_tuple, llvm::Value* tuple, |
| 1510 | llvm::Function* fn, const NonWritableBasicBlock& insert_before, |
| 1511 | llvm::Value* pool_val) const { |
| 1512 | DCHECK(type().IsStructType()); |
| 1513 | |
| 1514 | const TupleDescriptor* children_tuple_desc = children_tuple_descriptor(); |
| 1515 | DCHECK(children_tuple_desc != nullptr); |
| 1516 | |
| 1517 | llvm::Value* children_tuple = builder->CreateStructGEP(nullptr, tuple, |
| 1518 | llvm_field_idx(), "struct_children_tuple"); |
| 1519 | |
| 1520 | // TODO IMPALA-12775: Check whether the struct itself is NULL. |
| 1521 | CodegenWriteCollectionIterateOverChildren(codegen, builder, master_tuple, |
| 1522 | children_tuple, fn, insert_before, pool_val); |
| 1523 | } |
| 1524 | |
| 1525 | void SlotDescriptor::CodegenWriteCollectionVarlenChild(LlvmCodeGen* codegen, |
| 1526 | LlvmBuilder* builder, llvm::Value* master_tuple, llvm::Value* children_tuple, |
no test coverage detected