Skip to content

Commit 657d3dd

Browse files
authored
rust coverage: fix binary ids padding (#6551)
1 parent c99b010 commit 657d3dd

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

infra/base-images/base-runner/gocoverage/llvm-cov-rel/llvm-profraw-relative.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ func relativizeProfraw(data []byte, sectPrfCnts uint64, sectPrfData uint64) (err
102102
h.NamesDelta = binary.LittleEndian.Uint64(data[72:80])
103103
h.ValueKindLast = binary.LittleEndian.Uint64(data[80:88])
104104

105+
if h.BinaryIdsSize%8 != 0 {
106+
// adds padding for binary ids
107+
// cf commit b9f547e8e51182d32f1912f97a3e53f4899ea6be https://reviews.llvm.org/D110365
108+
padlen := 8 - (h.BinaryIdsSize % 8)
109+
data2 := make([]byte, len(data)+int(padlen))
110+
copy(data2, data[0:88+h.BinaryIdsSize])
111+
copy(data2[88+h.BinaryIdsSize+padlen:], data[88+h.BinaryIdsSize:])
112+
data = data2
113+
h.BinaryIdsSize += padlen
114+
binary.LittleEndian.PutUint64(data[16:24], h.BinaryIdsSize)
115+
}
116+
105117
if h.CountersDelta != sectPrfCnts-sectPrfData {
106118
// Rust linking adds an offset ? not seen in readelf.
107119
sectPrfData = h.CountersDelta - sectPrfCnts + sectPrfData

0 commit comments

Comments
 (0)