From 480eccdac217b927930905aca4c600f47a51468d Mon Sep 17 00:00:00 2001 From: rupothar Date: Wed, 7 Sep 2022 12:07:09 +0530 Subject: [PATCH] Binutils: Readelf -wi testcase failing with clang The latest clang is emitting strx forms for strings earlier it was emitting strp form. Due to this change, the readelf test case is failing, fixing the regular expression in the test case fixes the issue. Similar behavior is seen with addresses. Failing testcase: FAIL: readelf -wi: missing: .*DW_AT_producer.*(GNU C|indirect string).* Latest clang ------------ [1] DW_TAG_compile_unit DW_CHILDREN_yes DW_AT_producer DW_FORM_strx1 DW_AT_language DW_FORM_data2 <0>: Abbrev Number: 1 (DW_TAG_compile_unit) DW_AT_producer : (indexed string: 0x0): AMD clang version 15.0.0 DW_AT_language : 12 (ANSI C99) <10> DW_AT_name : (indexed string: 0x1): testprog.c Old clang and Gcc ----------------- [1] DW_TAG_variable DW_CHILDREN_no DW_AT_name DW_FORM_strp <0>: Abbrev Number: 5 (DW_TAG_compile_unit) DW_AT_producer : (indirect string, offset: 0x18): GNU C17 12.0.0 20211122 <11> DW_AT_language : 29 (C11) --- binutils/testsuite/binutils-all/readelf.exp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/binutils/testsuite/binutils-all/readelf.exp b/binutils/testsuite/binutils-all/readelf.exp index 0f7a1f3b5a0..23cefab41a4 100644 --- a/binutils/testsuite/binutils-all/readelf.exp +++ b/binutils/testsuite/binutils-all/readelf.exp @@ -188,12 +188,12 @@ proc readelf_wi_test {} { ".*DW_TAG_compile_unit.*" ".*DW_TAG_subprogram.*" ".*DW_TAG_base_type.*" - ".*DW_AT_producer.*(GNU C|indirect string).*" + ".*DW_AT_producer.*(GNU C|indirect string|indexed string).*" ".*DW_AT_language.*(ANSI C|C11).*" - ".*DW_AT_name.*(testprog.c|indirect string).*" + ".*DW_AT_name.*(testprog.c|indirect string|indexed string).*" ".*DW_AT_name.*fn.*" - ".*DW_AT_name.*(main|indirect string).*" - ".*\(DW_OP_addr: 0\).*" + ".*DW_AT_name.*(main|indirect string|indexed string).*" + ".*(DW_OP_addr: 0|DW_OP_addrx <0>).*" } # The MSP430 in LARGE mode does not generate a DW_OP_addr. -- 2.25.1