| 84 | } |
| 85 | |
| 86 | llvm::Constant* NullIndicatorOffset::ToIR(LlvmCodeGen* codegen) const { |
| 87 | llvm::StructType* null_indicator_offset_type = |
| 88 | codegen->GetStructType<NullIndicatorOffset>(); |
| 89 | // Populate padding at end of struct with zeroes. |
| 90 | llvm::ConstantAggregateZero* zeroes = |
| 91 | llvm::ConstantAggregateZero::get(null_indicator_offset_type); |
| 92 | return llvm::ConstantStruct::get(null_indicator_offset_type, |
| 93 | {codegen->GetI32Constant(byte_offset), |
| 94 | codegen->GetI8Constant(bit_mask), |
| 95 | zeroes->getStructElement(2)}); |
| 96 | } |
| 97 | |
| 98 | llvm::Constant* NullIndicatorOffset::ToIRPacked(LlvmCodeGen* codegen) const { |
| 99 | uint64_t packed = ((uint64_t)bit_mask << 32) | ((uint64_t)byte_offset); |
nothing calls this directly
no test coverage detected