From 8421c7ad304faee9056f43dc771f0ff76c14afec Mon Sep 17 00:00:00 2001 From: Job Noorman Date: Mon, 24 Apr 2023 20:54:23 +0200 Subject: [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 --- bolt/utils/llvm-bolt-wrapper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'bolt') diff --git a/bolt/utils/llvm-bolt-wrapper.py b/bolt/utils/llvm-bolt-wrapper.py index 652cc6074462..a6d863ce7caa 100755 --- a/bolt/utils/llvm-bolt-wrapper.py +++ b/bolt/utils/llvm-bolt-wrapper.py @@ -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): ''' -- cgit v1.2.1