Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit eab295c

Browse files
committed
Fix mir CString lowering not respecting the extra 0 byte for length calc
1 parent 4b577e2 commit eab295c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

crates/hir-ty/src/mir/lower.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,11 +1121,13 @@ impl<'ctx> MirLowerCtx<'ctx> {
11211121
}
11221122
hir_def::hir::Literal::CString(b) => {
11231123
let b = b.as_bytes();
1124+
let bytes = b.iter().copied().chain(iter::once(0)).collect::<Vec<_>>();
1125+
11241126
let mut data = Vec::with_capacity(mem::size_of::<usize>() * 2);
11251127
data.extend(0usize.to_le_bytes());
1126-
data.extend(b.len().to_le_bytes());
1128+
data.extend(bytes.len().to_le_bytes());
11271129
let mut mm = MemoryMap::default();
1128-
mm.insert(0, b.iter().copied().chain(iter::once(0)).collect::<Vec<_>>());
1130+
mm.insert(0, bytes);
11291131
return Ok(Operand::from_concrete_const(data, mm, ty));
11301132
}
11311133
hir_def::hir::Literal::ByteString(b) => {

0 commit comments

Comments
 (0)