Skip to content

Commit 5e851eb

Browse files
committed
Serialise null pointer constants.
1 parent a90dbe0 commit 5e851eb

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

llvm/lib/YkIR/YkIRWriter.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,9 +1252,25 @@ class YkIRWriter {
12521252
serialiseString(toString(C));
12531253
}
12541254

1255+
void serialiseConstantNullPtr(ConstantPointerNull *NP) {
1256+
// `Const` discriminator:
1257+
OutStreamer.emitInt8(ConstKindVal);
1258+
// ty_idx:
1259+
OutStreamer.emitSizeT(typeIndex(NP->getType()));
1260+
// num_bytes:
1261+
DataLayout DL(&M);
1262+
assert(DL.getPointerSize(NP->getType()->getAddressSpace()) ==
1263+
sizeof(size_t));
1264+
OutStreamer.emitSizeT(sizeof(size_t));
1265+
// bytes:
1266+
OutStreamer.emitSizeT(0);
1267+
}
1268+
12551269
void serialiseConstant(Constant *C) {
12561270
if (ConstantInt *CI = dyn_cast<ConstantInt>(C)) {
12571271
serialiseConstantInt(CI);
1272+
} else if (ConstantPointerNull *NP = dyn_cast<ConstantPointerNull>(C)) {
1273+
serialiseConstantNullPtr(NP);
12581274
} else {
12591275
serialiseUnimplementedConstant(C);
12601276
}

0 commit comments

Comments
 (0)