| 1149 | } |
| 1150 | |
| 1151 | void SlotDescriptor::CodegenSetToNull(const CodegenAnyValReadWriteInfo& read_write_info, |
| 1152 | llvm::Value* tuple) const { |
| 1153 | LlvmCodeGen* codegen = read_write_info.codegen(); |
| 1154 | LlvmBuilder* builder = read_write_info.builder(); |
| 1155 | CodegenSetNullIndicator( |
| 1156 | codegen, builder, tuple, codegen->true_value()); |
| 1157 | if (type_.IsStructType()) { |
| 1158 | DCHECK(children_tuple_descriptor_ != nullptr); |
| 1159 | for (SlotDescriptor* child_slot_desc : children_tuple_descriptor_->slots()) { |
| 1160 | child_slot_desc->CodegenSetToNull(read_write_info, tuple); |
| 1161 | } |
| 1162 | } |
| 1163 | } |
| 1164 | |
| 1165 | // Example IR for materializing an int and an array<string> column with non-NULL 'pool'. |
| 1166 | // Includes the part that is generated by CodegenAnyVal::ToReadWriteInfo(). |
nothing calls this directly
no test coverage detected