[BOLT][Wrapper] Fix off-by-one when parsing 'cmp' output

The byte offsets in the output of 'cmp' start from 1, not from 0 as the
current parser assumes. This caused mismatched bytes to sometimes be
attributed to the wrong section.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D149046
This commit is contained in:
Job Noorman 2023-04-24 20:54:23 +02:00
parent 0911558005
commit 8421c7ad30

View File

@ -206,7 +206,8 @@ def parse_cmp_offset(cmp_out):
Extracts byte number from cmp output:
file1 file2 differ: byte X, line Y
'''
return int(re.search(r'byte (\d+),', cmp_out).groups()[0])
# NOTE: cmp counts bytes starting from 1!
return int(re.search(r'byte (\d+),', cmp_out).groups()[0]) - 1
def report_real_time(binary, main_err, cmp_err, cfg):
'''