From patchwork Mon Feb 26 19:32:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Omar Sandoval X-Patchwork-Id: 86396 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 15B523858C5E for ; Mon, 26 Feb 2024 19:33:40 +0000 (GMT) X-Original-To: elfutils-devel@sourceware.org Delivered-To: elfutils-devel@sourceware.org Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id C0CCD3858438 for ; Mon, 26 Feb 2024 19:33:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C0CCD3858438 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=osandov.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=osandov.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C0CCD3858438 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::430 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708975995; cv=none; b=b/gn8WkDM2Kae7uLgNtIZ14W7aRc0dpxw8oeyppiOrNAA3ZZmhIiN98Pp20dYcNGbwkbvySOQeEWmNw+qmGXATY00d2K+rVSFD9dbHK7ul9zzk+QChJVPawi9Jtphk7ve4YJxs6nSQgrJ0nNfpkTecMjElTKQW79DlJ8XDN9vvA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708975995; c=relaxed/simple; bh=qcjkkDuofFD9Hy3ky8QN27oQmNdpJPTSNriE0zCh5TA=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=pejGdop+M0iBtVtMiYuYHbvIkR61yWJMYpYKqqQYID/LjigoRiYQDlmhArFbnzKOgKVolDkN6Z0FiyevTwjwnpF2/Uc91f0tchd5P4tsLr5Vc8/97geBPcDeewum0JZgNJHJcC6s3/ecMktjjFhHZ0NZADhplUlm+acDabjymLw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-6e4f49c5632so883003b3a.0 for ; Mon, 26 Feb 2024 11:33:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osandov-com.20230601.gappssmtp.com; s=20230601; t=1708975983; x=1709580783; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=U8FpMBmMGjU3gKkBMjY7JC8fXTCy5KiKxK1E2O8DMz0=; b=CzjEuq8d6ik7pEatjixntS2foIREoR8MSXC18m3whxPQNLQ4SLmbZm8hjAyvzhJNSY /KUz+jnrYcsFOYkfWhDn6VmFJnrOhjk8pkyPSxEwkFAuPI0dxohGaeHvbUEM0dcrG8Ad ad6LjWY6OKgO+I8Y//hvyEpXOb5uvDaoGor2M4jGJqbHzOMRwTXM9CC05F8kDe1XDBwK hMRn6u1swkn/9/9w24WHTbzwHNBHY4XkY8wcWVuMuJamy9/VKt4ycnwIfYkfZhT5PnwC 8M9qglu4uFyDg/lFQztXVpkjKCYIdsavTovy/6i3ZXb9Jzn9AevDkVl7T5wYNMwq9Ajl t1KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708975983; x=1709580783; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U8FpMBmMGjU3gKkBMjY7JC8fXTCy5KiKxK1E2O8DMz0=; b=IGNrEpJBpw+hMy+r2SETlVWmOgLwQnyXL3n0DxrMQ1B8aRwZ28H5ylr9pKEqAw1FCg HRJcGDujefF2r9uT9ZKOMdql4yytiqPjkH5B6ASIvGSuUuY7pUVhlArl/TjpEQp/SGtN eaXQ0R8jciTvjZiEU12+hZx0tnCa5chIszRJIKC0lt8Ogp8Is0YqwVks+JC7rVxJOIM8 bIOuoQbpBh7rqYCdGmKorjsL+qLMKj5UjHPQtwR+FWUpSq+tyA81T+u0FoGp2/zbC6P7 9vOOlbPhk2WLOalNvcHpTvB2UqNqP5Wu+DxvTQ2ejsiYq0+/aLd7QqSKuKN5vq2HguKi ZMTA== X-Gm-Message-State: AOJu0YyXoH9YEpukdbHJ6Fyekd8dUDLU6axGG7pO/ZEKwEITo8u90y2R pp8osBZ+hQpbEerdeoFIeTmX+uaD2/qLMEOQo5XI0ekVea2GKcnGWufZqA9hBP7Fr0tUOd7WNhy b X-Google-Smtp-Source: AGHT+IEsnjHAX8uN56tMW6Ipfn501+9eyW1GirFsXuuy3/A1Kby7iV11I44BMdUkz+NSGo6fG115ig== X-Received: by 2002:a05:6a20:b297:b0:1a0:fcf5:c931 with SMTP id ei23-20020a056a20b29700b001a0fcf5c931mr98264pzb.29.1708975982068; Mon, 26 Feb 2024 11:33:02 -0800 (PST) Received: from telecaster.thefacebook.com ([2620:10d:c090:500::4:e023]) by smtp.gmail.com with ESMTPSA id s21-20020a170902b19500b001dbc3f2e7f4sm56980plr.101.2024.02.26.11.33.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 11:33:01 -0800 (PST) From: Omar Sandoval To: elfutils-devel@sourceware.org Subject: [PATCH v3 3/4] libdw: Apply DWARF package file section offsets where appropriate Date: Mon, 26 Feb 2024 11:32:50 -0800 Message-ID: <97684319dd59b92e63675ee7df118466df3ca1fe.1708974560.git.osandov@fb.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: References: MIME-Version: 1.0 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: elfutils-devel-bounces+patchwork=sourceware.org@sourceware.org From: Omar Sandoval The final piece of DWARF package file support is that offsets have to be interpreted relative to the section offset from the package index. .debug_abbrev.dwo is already covered, so sprinkle around calls to dwarf_cu_dwp_section_info for the remaining sections: .debug_line.dwo, .debug_loclists.dwo/.debug_loc.dwo, .debug_str_offsets.dwo, .debug_macro.dwo/.debug_macinfo.dwo, and .debug_rnglists.dwo. With all of that in place, we can finally test various libdw functions on dwp files. * libdw/dwarf_getlocation.c (initial_offset): Call dwarf_cu_dwp_section_info and add offset to start_offset. * libdw/dwarf_getmacros.c (get_macinfo_table): Call dwarf_cu_dwp_section_info and add offset to line_offset. (get_offset_from): Call dwarf_cu_dwp_section_info and add offset to *retp. * libdw/dwarf_getsrcfiles.c (dwarf_getsrcfiles): Call dwarf_cu_dwp_section_info and pass offset to __libdw_getsrclines. * libdw/dwarf_next_lines.c (dwarf_next_lines): Call dwarf_cu_dwp_section_info and add offset to stmt_off. * libdw/libdwP.h (str_offsets_base_off): Call dwarf_cu_dwp_section_info and add offset. (__libdw_cu_ranges_base): Ditto. (__libdw_cu_locs_base): Ditto. * tests/run-all-dwarf-ranges.sh: Check testfile-dwp-5 and testfile-dwp-4. * tests/run-declfiles.sh: Ditto. * tests/run-get-lines.sh: Ditto. * tests/run-next-lines.sh: Ditto. * tests/run-varlocs.sh: Ditto. * tests/run-get-files.sh: Check testfile-dwp-5, testfile-dwp-5.dwp, testfile-dwp-4, and testfile-dwp-4.dwp * tests/run-next-files.sh: Ditto. * tests/run-dwarf-getmacros.sh: Check testfile-dwp-5 and testfile-dwp-4-strict. * tests/run-get-units-split.sh: Ditto. Signed-off-by: Omar Sandoval --- libdw/dwarf_getlocation.c | 6 + libdw/dwarf_getmacros.c | 26 +- libdw/dwarf_getsrcfiles.c | 17 +- libdw/dwarf_next_lines.c | 5 + libdw/libdwP.h | 42 +- tests/run-all-dwarf-ranges.sh | 114 +++ tests/run-declfiles.sh | 90 +++ tests/run-dwarf-getmacros.sh | 1412 +++++++++++++++++++++++++++++++++ tests/run-get-files.sh | 115 +++ tests/run-get-lines.sh | 244 ++++++ tests/run-get-units-split.sh | 18 + tests/run-next-files.sh | 100 +++ tests/run-next-lines.sh | 242 ++++++ tests/run-varlocs.sh | 112 +++ 14 files changed, 2522 insertions(+), 21 deletions(-) diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index 553fdc98..37b32fc1 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -812,6 +812,12 @@ initial_offset (Dwarf_Attribute *attr, ptrdiff_t *offset) : DWARF_E_NO_DEBUG_LOCLISTS), NULL, &start_offset) == NULL) return -1; + + Dwarf_Off loc_off; + if (INTUSE(dwarf_cu_dwp_section_info) (attr->cu, DW_SECT_LOCLISTS, + &loc_off, NULL) != 0) + return -1; + start_offset += loc_off; } *offset = start_offset; diff --git a/libdw/dwarf_getmacros.c b/libdw/dwarf_getmacros.c index a3a78884..2667eb45 100644 --- a/libdw/dwarf_getmacros.c +++ b/libdw/dwarf_getmacros.c @@ -47,7 +47,15 @@ get_offset_from (Dwarf_Die *die, int name, Dwarf_Word *retp) return -1; /* Offset into the corresponding section. */ - return INTUSE(dwarf_formudata) (&attr, retp); + if (INTUSE(dwarf_formudata) (&attr, retp) != 0) + return -1; + + Dwarf_Off offset; + if (INTUSE(dwarf_cu_dwp_section_info) (die->cu, DW_SECT_MACRO, &offset, NULL) + != 0) + return -1; + *retp += offset; + return 0; } static int @@ -131,6 +139,14 @@ get_macinfo_table (Dwarf *dbg, Dwarf_Word macoff, Dwarf_Die *cudie) else if (cudie->cu->unit_type == DW_UT_split_compile && dbg->sectiondata[IDX_debug_line] != NULL) line_offset = 0; + if (line_offset != (Dwarf_Off) -1) + { + Dwarf_Off dwp_offset; + if (INTUSE(dwarf_cu_dwp_section_info) (cudie->cu, DW_SECT_LINE, + &dwp_offset, NULL) != 0) + return NULL; + line_offset += dwp_offset; + } Dwarf_Macro_Op_Table *table = libdw_alloc (dbg, Dwarf_Macro_Op_Table, macinfo_data_size, 1); @@ -188,6 +204,14 @@ get_table_for_offset (Dwarf *dbg, Dwarf_Word macoff, if (unlikely (INTUSE(dwarf_formudata) (attr, &line_offset) != 0)) return NULL; } + if (line_offset != (Dwarf_Off) -1 && cudie != NULL) + { + Dwarf_Off dwp_offset; + if (INTUSE(dwarf_cu_dwp_section_info) (cudie->cu, DW_SECT_LINE, + &dwp_offset, NULL) != 0) + return NULL; + line_offset += dwp_offset; + } uint8_t address_size; if (cudie != NULL) diff --git a/libdw/dwarf_getsrcfiles.c b/libdw/dwarf_getsrcfiles.c index 12fdabf2..cd2e5b5a 100644 --- a/libdw/dwarf_getsrcfiles.c +++ b/libdw/dwarf_getsrcfiles.c @@ -64,12 +64,17 @@ dwarf_getsrcfiles (Dwarf_Die *cudie, Dwarf_Files **files, size_t *nfiles) the table is at offset zero. */ if (cu->dbg->sectiondata[IDX_debug_line] != NULL) { - /* We are only interested in the files, the lines will - always come from the skeleton. */ - res = __libdw_getsrclines (cu->dbg, 0, - __libdw_getcompdir (cudie), - cu->address_size, NULL, - &cu->files); + Dwarf_Off dwp_off; + if (INTUSE(dwarf_cu_dwp_section_info) (cu, DW_SECT_LINE, + &dwp_off, NULL) == 0) + { + /* We are only interested in the files, the lines will + always come from the skeleton. */ + res = __libdw_getsrclines (cu->dbg, dwp_off, + __libdw_getcompdir (cudie), + cu->address_size, NULL, + &cu->files); + } } else { diff --git a/libdw/dwarf_next_lines.c b/libdw/dwarf_next_lines.c index 6a9fe361..a96bd73e 100644 --- a/libdw/dwarf_next_lines.c +++ b/libdw/dwarf_next_lines.c @@ -132,6 +132,11 @@ dwarf_next_lines (Dwarf *dbg, Dwarf_Off off, && next_cu->unit_type != DW_UT_split_type) continue; + Dwarf_Off dwp_off; + if (INTUSE(dwarf_cu_dwp_section_info) (next_cu, DW_SECT_LINE, + &dwp_off, NULL) == 0) + stmt_off += dwp_off; + if (stmt_off == off) { *cu = next_cu; diff --git a/libdw/libdwP.h b/libdw/libdwP.h index 75e0283b..1a0a4df3 100644 --- a/libdw/libdwP.h +++ b/libdw/libdwP.h @@ -1152,25 +1152,30 @@ str_offsets_base_off (Dwarf *dbg, Dwarf_CU *cu) cu = first_cu; } + Dwarf_Off off = 0; if (cu != NULL) { if (cu->str_off_base == (Dwarf_Off) -1) { + Dwarf_Off dwp_offset; + if (dwarf_cu_dwp_section_info (cu, DW_SECT_STR_OFFSETS, &dwp_offset, + NULL) == 0) + off = dwp_offset; Dwarf_Die cu_die = CUDIE(cu); Dwarf_Attribute attr; if (dwarf_attr (&cu_die, DW_AT_str_offsets_base, &attr) != NULL) { - Dwarf_Word off; - if (dwarf_formudata (&attr, &off) == 0) + Dwarf_Word base; + if (dwarf_formudata (&attr, &base) == 0) { - cu->str_off_base = off; + cu->str_off_base = off + base; return cu->str_off_base; } } /* For older DWARF simply assume zero (no header). */ if (cu->version < 5) { - cu->str_off_base = 0; + cu->str_off_base = off; return cu->str_off_base; } @@ -1183,7 +1188,6 @@ str_offsets_base_off (Dwarf *dbg, Dwarf_CU *cu) /* No str_offsets_base attribute, we have to assume "zero". But there could be a header first. */ - Dwarf_Off off = 0; if (dbg == NULL) goto no_header; @@ -1225,7 +1229,7 @@ str_offsets_base_off (Dwarf *dbg, Dwarf_CU *cu) /* padding */ read_2ubyte_unaligned_inc (dbg, readp); - off = (Dwarf_Off) (readp - start); + off += (Dwarf_Off) (readp - start); no_header: if (cu != NULL) @@ -1263,18 +1267,23 @@ __libdw_cu_ranges_base (Dwarf_CU *cu) } else { + Dwarf_Off dwp_offset; + if (dwarf_cu_dwp_section_info (cu, DW_SECT_RNGLISTS, &dwp_offset, + NULL) == 0) + offset = dwp_offset; + if (dwarf_attr (&cu_die, DW_AT_rnglists_base, &attr) != NULL) { Dwarf_Word off; if (dwarf_formudata (&attr, &off) == 0) - offset = off; + offset += off; } /* There wasn't an rnglists_base, if the Dwarf does have a .debug_rnglists section, then it might be we need the base after the first header. */ Elf_Data *data = cu->dbg->sectiondata[IDX_debug_rnglists]; - if (offset == 0 && data != NULL) + if (offset == dwp_offset && data != NULL) { Dwarf *dbg = cu->dbg; const unsigned char *readp = data->d_buf; @@ -1320,8 +1329,8 @@ __libdw_cu_ranges_base (Dwarf_CU *cu) if (unit_length - 8 < needed) goto no_header; - offset = (Dwarf_Off) (offset_array_start - - (unsigned char *) data->d_buf); + offset += (Dwarf_Off) (offset_array_start + - (unsigned char *) data->d_buf); } } no_header: @@ -1339,20 +1348,25 @@ __libdw_cu_locs_base (Dwarf_CU *cu) if (cu->locs_base == (Dwarf_Off) -1) { Dwarf_Off offset = 0; + Dwarf_Off dwp_offset; + if (dwarf_cu_dwp_section_info (cu, DW_SECT_LOCLISTS, &dwp_offset, NULL) + == 0) + offset = dwp_offset; + Dwarf_Die cu_die = CUDIE(cu); Dwarf_Attribute attr; if (dwarf_attr (&cu_die, DW_AT_loclists_base, &attr) != NULL) { Dwarf_Word off; if (dwarf_formudata (&attr, &off) == 0) - offset = off; + offset += off; } /* There wasn't an loclists_base, if the Dwarf does have a .debug_loclists section, then it might be we need the base after the first header. */ Elf_Data *data = cu->dbg->sectiondata[IDX_debug_loclists]; - if (offset == 0 && data != NULL) + if (offset == dwp_offset && data != NULL) { Dwarf *dbg = cu->dbg; const unsigned char *readp = data->d_buf; @@ -1398,8 +1412,8 @@ __libdw_cu_locs_base (Dwarf_CU *cu) if (unit_length - 8 < needed) goto no_header; - offset = (Dwarf_Off) (offset_array_start - - (unsigned char *) data->d_buf); + offset += (Dwarf_Off) (offset_array_start + - (unsigned char *) data->d_buf); } no_header: diff --git a/tests/run-all-dwarf-ranges.sh b/tests/run-all-dwarf-ranges.sh index cefb4231..61141cfa 100755 --- a/tests/run-all-dwarf-ranges.sh +++ b/tests/run-all-dwarf-ranges.sh @@ -126,4 +126,118 @@ die: no_subject (2e) EOF +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp + +testrun_compare ${abs_builddir}/all-dwarf-ranges testfile-dwp-5 << EOF +die: foo.cc (11) + 401190..401200 + +die: foo (2e) + 4011c0..401200 + +die: x_x (1d) + 4011cb..4011eb + 4011f8..401200 + +die: (b) + 4011cb..4011eb + 4011f8..401200 + +die: x_x (2e) + 401190..4011bd + +die: (b) + 401190..401190 + 401192..4011bb + +die: bar.cc (11) + 401200..40121b + +die: bar (2e) + 401200..40121b + +die: main.cc (11) + 401020..4010a0 + +die: main (2e) + 401020..4010a0 + +die: fibonacci (1d) + 401030..401032 + 401036..401060 + 401099..4010a0 + +die: fibonacci (1d) + 40103a..401060 + 401099..4010a0 + +die: (b) + 40103a..401060 + 401099..4010a0 + +die: (b) + 40103a..401044 + 401050..401060 + +die: (b) + 401050..401053 + 401056..401059 + +EOF + +testrun_compare ${abs_builddir}/all-dwarf-ranges testfile-dwp-4 << EOF +die: foo.cc (11) + 401190..401200 + +die: foo (2e) + 4011c0..401200 + +die: x_x (1d) + 4011cb..4011eb + 4011f8..401200 + +die: (b) + 4011cb..4011eb + 4011f8..401200 + +die: x_x (2e) + 401190..4011bd + +die: bar.cc (11) + 401200..40121b + +die: bar (2e) + 401200..40121b + +die: main.cc (11) + 401020..4010a0 + +die: main (2e) + 401020..4010a0 + +die: fibonacci (1d) + 401030..401032 + 401036..401060 + 401099..4010a0 + +die: fibonacci (1d) + 40103a..401060 + 401099..4010a0 + +die: (b) + 40103a..401060 + 401099..4010a0 + +die: (b) + 40103a..401044 + 401050..401060 + +die: (b) + 401050..401053 + 401056..401059 + +EOF + exit 0 diff --git a/tests/run-declfiles.sh b/tests/run-declfiles.sh index faba7078..5aa1b970 100755 --- a/tests/run-declfiles.sh +++ b/tests/run-declfiles.sh @@ -231,3 +231,93 @@ file: testfile-splitdwarf-5 exit@/usr/include/stdlib.h:542:13 baz@/home/mark/src/elfutils/tests/hello.h:2:12 EOF + +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp + +testrun_compare ${abs_builddir}/declfiles testfile-dwp-5 << EOF +file: testfile-dwp-5 + cu: foo.cc + foo@/home/osandov/src/elfutils/tests/foobar.h:4:7 + foo@/home/osandov/src/elfutils/tests/foo.cc:14:1 + x@/home/osandov/src/elfutils/tests/foo.cc:16:7 + x_x@/home/osandov/src/elfutils/tests/foo.cc:6:1 + x@/home/osandov/src/elfutils/tests/foo.cc:6:10 + i@/home/osandov/src/elfutils/tests/foo.cc:8:12 + x_x@/home/osandov/src/elfutils/tests/foo.cc:6:1 + x@/home/osandov/src/elfutils/tests/foo.cc:6:10 + i@/home/osandov/src/elfutils/tests/foo.cc:8:12 + x_x@/home/osandov/src/elfutils/tests/foo.cc:6:1 + x@/home/osandov/src/elfutils/tests/foo.cc:6:10 + i@/home/osandov/src/elfutils/tests/foo.cc:8:12 + cu: bar.cc + bar@/home/osandov/src/elfutils/tests/foobar.h:10:8 + bar@/home/osandov/src/elfutils/tests/bar.cc:6:1 + cu: main.cc + foo@/home/osandov/src/elfutils/tests/foobar.h:4:7 + bar@/home/osandov/src/elfutils/tests/foobar.h:10:8 + main@/home/osandov/src/elfutils/tests/main.cc:6:1 + argc@/home/osandov/src/elfutils/tests/main.cc:6:6 + argv@/home/osandov/src/elfutils/tests/main.cc:6:6 + myfoo@/home/osandov/src/elfutils/tests/main.cc:8:14 + mybar@/home/osandov/src/elfutils/tests/main.cc:9:14 + fibonacci@/home/osandov/src/elfutils/tests/foobar.h:17:1 + n@/home/osandov/src/elfutils/tests/foobar.h:17:25 + fibonacci@/home/osandov/src/elfutils/tests/foobar.h:17:1 + n@/home/osandov/src/elfutils/tests/foobar.h:17:25 + a@/home/osandov/src/elfutils/tests/foobar.h:23:12 + b@/home/osandov/src/elfutils/tests/foobar.h:24:12 + i@/home/osandov/src/elfutils/tests/foobar.h:25:25 + tmp@/home/osandov/src/elfutils/tests/foobar.h:27:9 + fibonacci@/home/osandov/src/elfutils/tests/foobar.h:17:1 + n@/home/osandov/src/elfutils/tests/foobar.h:17:25 + a@/home/osandov/src/elfutils/tests/foobar.h:23:12 + b@/home/osandov/src/elfutils/tests/foobar.h:24:12 + i@/home/osandov/src/elfutils/tests/foobar.h:25:25 + tmp@/home/osandov/src/elfutils/tests/foobar.h:27:9 +EOF + +testrun_compare ${abs_builddir}/declfiles testfile-dwp-4 << EOF +file: testfile-dwp-4 + cu: foo.cc + foo@/home/osandov/src/elfutils/tests/foobar.h:4:7 + foo@/home/osandov/src/elfutils/tests/foo.cc:14:1 + x@/home/osandov/src/elfutils/tests/foo.cc:16:7 + x_x@/home/osandov/src/elfutils/tests/foo.cc:6:1 + x@/home/osandov/src/elfutils/tests/foo.cc:6:10 + i@/home/osandov/src/elfutils/tests/foo.cc:8:12 + x_x@/home/osandov/src/elfutils/tests/foo.cc:6:1 + x@/home/osandov/src/elfutils/tests/foo.cc:6:10 + i@/home/osandov/src/elfutils/tests/foo.cc:8:12 + x_x@/home/osandov/src/elfutils/tests/foo.cc:6:1 + x@/home/osandov/src/elfutils/tests/foo.cc:6:10 + i@/home/osandov/src/elfutils/tests/foo.cc:8:12 + cu: bar.cc + bar@/home/osandov/src/elfutils/tests/foobar.h:10:8 + bar@/home/osandov/src/elfutils/tests/bar.cc:6:1 + cu: main.cc + foo@/home/osandov/src/elfutils/tests/foobar.h:4:7 + bar@/home/osandov/src/elfutils/tests/foobar.h:10:8 + main@/home/osandov/src/elfutils/tests/main.cc:6:1 + argc@/home/osandov/src/elfutils/tests/main.cc:6:6 + argv@/home/osandov/src/elfutils/tests/main.cc:6:6 + myfoo@/home/osandov/src/elfutils/tests/main.cc:8:14 + mybar@/home/osandov/src/elfutils/tests/main.cc:9:14 + fibonacci@/home/osandov/src/elfutils/tests/foobar.h:17:1 + n@/home/osandov/src/elfutils/tests/foobar.h:17:25 + fibonacci@/home/osandov/src/elfutils/tests/foobar.h:17:1 + n@/home/osandov/src/elfutils/tests/foobar.h:17:25 + a@/home/osandov/src/elfutils/tests/foobar.h:23:12 + b@/home/osandov/src/elfutils/tests/foobar.h:24:12 + i@/home/osandov/src/elfutils/tests/foobar.h:25:25 + tmp@/home/osandov/src/elfutils/tests/foobar.h:27:9 + foo@/home/osandov/src/elfutils/tests/foobar.h:4:7 + bar@/home/osandov/src/elfutils/tests/foobar.h:10:8 + fibonacci@/home/osandov/src/elfutils/tests/foobar.h:17:1 + n@/home/osandov/src/elfutils/tests/foobar.h:17:25 + a@/home/osandov/src/elfutils/tests/foobar.h:23:12 + b@/home/osandov/src/elfutils/tests/foobar.h:24:12 + i@/home/osandov/src/elfutils/tests/foobar.h:25:25 + tmp@/home/osandov/src/elfutils/tests/foobar.h:27:9 +EOF diff --git a/tests/run-dwarf-getmacros.sh b/tests/run-dwarf-getmacros.sh index 0a488fa3..220c2426 100755 --- a/tests/run-dwarf-getmacros.sh +++ b/tests/run-dwarf-getmacros.sh @@ -707,4 +707,1416 @@ file /home/petr/proj/elfutils/master/elfutils/x.c /file EOF +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4-strict testfile-dwp-4-strict.dwp + +# Not testfile-dwp-4 because it's unclear what to do about +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99319. +for file in testfile-dwp-5 testfile-dwp-4-strict; do + testrun_compare ${abs_builddir}/dwarf-getmacros "$file" '' '' << EOF +CU foo.cc +__STDC__ 1 +__cplusplus 201703L +__STDC_UTF_16__ 1 +__STDC_UTF_32__ 1 +__STDC_HOSTED__ 1 +__GNUC__ 14 +__GNUC_MINOR__ 0 +__GNUC_PATCHLEVEL__ 0 +__VERSION__ "14.0.0 20230920 (experimental)" +__ATOMIC_RELAXED 0 +__ATOMIC_SEQ_CST 5 +__ATOMIC_ACQUIRE 2 +__ATOMIC_RELEASE 3 +__ATOMIC_ACQ_REL 4 +__ATOMIC_CONSUME 1 +__OPTIMIZE__ 1 +__FINITE_MATH_ONLY__ 0 +_LP64 1 +__LP64__ 1 +__SIZEOF_INT__ 4 +__SIZEOF_LONG__ 8 +__SIZEOF_LONG_LONG__ 8 +__SIZEOF_SHORT__ 2 +__SIZEOF_FLOAT__ 4 +__SIZEOF_DOUBLE__ 8 +__SIZEOF_LONG_DOUBLE__ 16 +__SIZEOF_SIZE_T__ 8 +__CHAR_BIT__ 8 +__BIGGEST_ALIGNMENT__ 16 +__ORDER_LITTLE_ENDIAN__ 1234 +__ORDER_BIG_ENDIAN__ 4321 +__ORDER_PDP_ENDIAN__ 3412 +__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +__SIZEOF_POINTER__ 8 +__GNUC_EXECUTION_CHARSET_NAME "UTF-8" +__GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +__GNUG__ 14 +__SIZE_TYPE__ long unsigned int +__PTRDIFF_TYPE__ long int +__WCHAR_TYPE__ int +__WINT_TYPE__ unsigned int +__INTMAX_TYPE__ long int +__UINTMAX_TYPE__ long unsigned int +__CHAR16_TYPE__ short unsigned int +__CHAR32_TYPE__ unsigned int +__SIG_ATOMIC_TYPE__ int +__INT8_TYPE__ signed char +__INT16_TYPE__ short int +__INT32_TYPE__ int +__INT64_TYPE__ long int +__UINT8_TYPE__ unsigned char +__UINT16_TYPE__ short unsigned int +__UINT32_TYPE__ unsigned int +__UINT64_TYPE__ long unsigned int +__INT_LEAST8_TYPE__ signed char +__INT_LEAST16_TYPE__ short int +__INT_LEAST32_TYPE__ int +__INT_LEAST64_TYPE__ long int +__UINT_LEAST8_TYPE__ unsigned char +__UINT_LEAST16_TYPE__ short unsigned int +__UINT_LEAST32_TYPE__ unsigned int +__UINT_LEAST64_TYPE__ long unsigned int +__INT_FAST8_TYPE__ signed char +__INT_FAST16_TYPE__ long int +__INT_FAST32_TYPE__ long int +__INT_FAST64_TYPE__ long int +__UINT_FAST8_TYPE__ unsigned char +__UINT_FAST16_TYPE__ long unsigned int +__UINT_FAST32_TYPE__ long unsigned int +__UINT_FAST64_TYPE__ long unsigned int +__INTPTR_TYPE__ long int +__UINTPTR_TYPE__ long unsigned int +__GXX_WEAK__ 1 +__DEPRECATED 1 +__GXX_RTTI 1 +__cpp_rtti 199711L +__GXX_EXPERIMENTAL_CXX0X__ 1 +__cpp_binary_literals 201304L +__cpp_hex_float 201603L +__cpp_runtime_arrays 198712L +__cpp_raw_strings 200710L +__cpp_unicode_literals 200710L +__cpp_user_defined_literals 200809L +__cpp_lambdas 200907L +__cpp_decltype 200707L +__cpp_attributes 200809L +__cpp_rvalue_reference 200610L +__cpp_rvalue_references 200610L +__cpp_variadic_templates 200704L +__cpp_initializer_lists 200806L +__cpp_delegating_constructors 200604L +__cpp_nsdmi 200809L +__cpp_inheriting_constructors 201511L +__cpp_ref_qualifiers 200710L +__cpp_alias_templates 200704L +__cpp_return_type_deduction 201304L +__cpp_init_captures 201304L +__cpp_generic_lambdas 201304L +__cpp_decltype_auto 201304L +__cpp_aggregate_nsdmi 201304L +__cpp_variable_templates 201304L +__cpp_digit_separators 201309L +__cpp_unicode_characters 201411L +__cpp_static_assert 201411L +__cpp_namespace_attributes 201411L +__cpp_enumerator_attributes 201411L +__cpp_nested_namespace_definitions 201411L +__cpp_fold_expressions 201603L +__cpp_nontype_template_args 201411L +__cpp_range_based_for 201603L +__cpp_constexpr 201603L +__cpp_if_constexpr 201606L +__cpp_capture_star_this 201603L +__cpp_inline_variables 201606L +__cpp_aggregate_bases 201603L +__cpp_deduction_guides 201703L +__cpp_noexcept_function_type 201510L +__cpp_template_auto 201606L +__cpp_structured_bindings 201606L +__cpp_variadic_using 201611L +__cpp_guaranteed_copy_elision 201606L +__cpp_nontype_template_parameter_auto 201606L +__cpp_sized_deallocation 201309L +__cpp_aligned_new 201606L +__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +__cpp_template_template_args 201611L +__cpp_threadsafe_static_init 200806L +__STDCPP_THREADS__ 1 +__EXCEPTIONS 1 +__cpp_exceptions 199711L +__GXX_ABI_VERSION 1019 +__SCHAR_MAX__ 0x7f +__SHRT_MAX__ 0x7fff +__INT_MAX__ 0x7fffffff +__LONG_MAX__ 0x7fffffffffffffffL +__LONG_LONG_MAX__ 0x7fffffffffffffffLL +__WCHAR_MAX__ 0x7fffffff +__WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +__WINT_MAX__ 0xffffffffU +__WINT_MIN__ 0U +__PTRDIFF_MAX__ 0x7fffffffffffffffL +__SIZE_MAX__ 0xffffffffffffffffUL +__SCHAR_WIDTH__ 8 +__SHRT_WIDTH__ 16 +__INT_WIDTH__ 32 +__LONG_WIDTH__ 64 +__LONG_LONG_WIDTH__ 64 +__WCHAR_WIDTH__ 32 +__WINT_WIDTH__ 32 +__PTRDIFF_WIDTH__ 64 +__SIZE_WIDTH__ 64 +__GLIBCXX_TYPE_INT_N_0 __int128 +__GLIBCXX_BITSIZE_INT_N_0 128 +__INTMAX_MAX__ 0x7fffffffffffffffL +__INTMAX_C(c) c ## L +__UINTMAX_MAX__ 0xffffffffffffffffUL +__UINTMAX_C(c) c ## UL +__INTMAX_WIDTH__ 64 +__SIG_ATOMIC_MAX__ 0x7fffffff +__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +__SIG_ATOMIC_WIDTH__ 32 +__INT8_MAX__ 0x7f +__INT16_MAX__ 0x7fff +__INT32_MAX__ 0x7fffffff +__INT64_MAX__ 0x7fffffffffffffffL +__UINT8_MAX__ 0xff +__UINT16_MAX__ 0xffff +__UINT32_MAX__ 0xffffffffU +__UINT64_MAX__ 0xffffffffffffffffUL +__INT_LEAST8_MAX__ 0x7f +__INT8_C(c) c +__INT_LEAST8_WIDTH__ 8 +__INT_LEAST16_MAX__ 0x7fff +__INT16_C(c) c +__INT_LEAST16_WIDTH__ 16 +__INT_LEAST32_MAX__ 0x7fffffff +__INT32_C(c) c +__INT_LEAST32_WIDTH__ 32 +__INT_LEAST64_MAX__ 0x7fffffffffffffffL +__INT64_C(c) c ## L +__INT_LEAST64_WIDTH__ 64 +__UINT_LEAST8_MAX__ 0xff +__UINT8_C(c) c +__UINT_LEAST16_MAX__ 0xffff +__UINT16_C(c) c +__UINT_LEAST32_MAX__ 0xffffffffU +__UINT32_C(c) c ## U +__UINT_LEAST64_MAX__ 0xffffffffffffffffUL +__UINT64_C(c) c ## UL +__INT_FAST8_MAX__ 0x7f +__INT_FAST8_WIDTH__ 8 +__INT_FAST16_MAX__ 0x7fffffffffffffffL +__INT_FAST16_WIDTH__ 64 +__INT_FAST32_MAX__ 0x7fffffffffffffffL +__INT_FAST32_WIDTH__ 64 +__INT_FAST64_MAX__ 0x7fffffffffffffffL +__INT_FAST64_WIDTH__ 64 +__UINT_FAST8_MAX__ 0xff +__UINT_FAST16_MAX__ 0xffffffffffffffffUL +__UINT_FAST32_MAX__ 0xffffffffffffffffUL +__UINT_FAST64_MAX__ 0xffffffffffffffffUL +__INTPTR_MAX__ 0x7fffffffffffffffL +__INTPTR_WIDTH__ 64 +__UINTPTR_MAX__ 0xffffffffffffffffUL +__GCC_IEC_559 2 +__GCC_IEC_559_COMPLEX 2 +__FLT_EVAL_METHOD__ 0 +__FLT_EVAL_METHOD_TS_18661_3__ 0 +__DEC_EVAL_METHOD__ 2 +__FLT_RADIX__ 2 +__FLT_MANT_DIG__ 24 +__FLT_DIG__ 6 +__FLT_MIN_EXP__ (-125) +__FLT_MIN_10_EXP__ (-37) +__FLT_MAX_EXP__ 128 +__FLT_MAX_10_EXP__ 38 +__FLT_DECIMAL_DIG__ 9 +__FLT_MAX__ 3.40282346638528859811704183484516925e+38F +__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +__FLT_MIN__ 1.17549435082228750796873653722224568e-38F +__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +__FLT_HAS_DENORM__ 1 +__FLT_HAS_INFINITY__ 1 +__FLT_HAS_QUIET_NAN__ 1 +__FLT_IS_IEC_60559__ 1 +__DBL_MANT_DIG__ 53 +__DBL_DIG__ 15 +__DBL_MIN_EXP__ (-1021) +__DBL_MIN_10_EXP__ (-307) +__DBL_MAX_EXP__ 1024 +__DBL_MAX_10_EXP__ 308 +__DBL_DECIMAL_DIG__ 17 +__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +__DBL_HAS_DENORM__ 1 +__DBL_HAS_INFINITY__ 1 +__DBL_HAS_QUIET_NAN__ 1 +__DBL_IS_IEC_60559__ 1 +__LDBL_MANT_DIG__ 64 +__LDBL_DIG__ 18 +__LDBL_MIN_EXP__ (-16381) +__LDBL_MIN_10_EXP__ (-4931) +__LDBL_MAX_EXP__ 16384 +__LDBL_MAX_10_EXP__ 4932 +__DECIMAL_DIG__ 21 +__LDBL_DECIMAL_DIG__ 21 +__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +__LDBL_HAS_DENORM__ 1 +__LDBL_HAS_INFINITY__ 1 +__LDBL_HAS_QUIET_NAN__ 1 +__LDBL_IS_IEC_60559__ 1 +__FLT16_MANT_DIG__ 11 +__FLT16_DIG__ 3 +__FLT16_MIN_EXP__ (-13) +__FLT16_MIN_10_EXP__ (-4) +__FLT16_MAX_EXP__ 16 +__FLT16_MAX_10_EXP__ 4 +__FLT16_DECIMAL_DIG__ 5 +__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +__FLT16_HAS_DENORM__ 1 +__FLT16_HAS_INFINITY__ 1 +__FLT16_HAS_QUIET_NAN__ 1 +__FLT16_IS_IEC_60559__ 1 +__FLT32_MANT_DIG__ 24 +__FLT32_DIG__ 6 +__FLT32_MIN_EXP__ (-125) +__FLT32_MIN_10_EXP__ (-37) +__FLT32_MAX_EXP__ 128 +__FLT32_MAX_10_EXP__ 38 +__FLT32_DECIMAL_DIG__ 9 +__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +__FLT32_HAS_DENORM__ 1 +__FLT32_HAS_INFINITY__ 1 +__FLT32_HAS_QUIET_NAN__ 1 +__FLT32_IS_IEC_60559__ 1 +__FLT64_MANT_DIG__ 53 +__FLT64_DIG__ 15 +__FLT64_MIN_EXP__ (-1021) +__FLT64_MIN_10_EXP__ (-307) +__FLT64_MAX_EXP__ 1024 +__FLT64_MAX_10_EXP__ 308 +__FLT64_DECIMAL_DIG__ 17 +__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +__FLT64_HAS_DENORM__ 1 +__FLT64_HAS_INFINITY__ 1 +__FLT64_HAS_QUIET_NAN__ 1 +__FLT64_IS_IEC_60559__ 1 +__FLT128_MANT_DIG__ 113 +__FLT128_DIG__ 33 +__FLT128_MIN_EXP__ (-16381) +__FLT128_MIN_10_EXP__ (-4931) +__FLT128_MAX_EXP__ 16384 +__FLT128_MAX_10_EXP__ 4932 +__FLT128_DECIMAL_DIG__ 36 +__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +__FLT128_HAS_DENORM__ 1 +__FLT128_HAS_INFINITY__ 1 +__FLT128_HAS_QUIET_NAN__ 1 +__FLT128_IS_IEC_60559__ 1 +__FLT32X_MANT_DIG__ 53 +__FLT32X_DIG__ 15 +__FLT32X_MIN_EXP__ (-1021) +__FLT32X_MIN_10_EXP__ (-307) +__FLT32X_MAX_EXP__ 1024 +__FLT32X_MAX_10_EXP__ 308 +__FLT32X_DECIMAL_DIG__ 17 +__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +__FLT32X_HAS_DENORM__ 1 +__FLT32X_HAS_INFINITY__ 1 +__FLT32X_HAS_QUIET_NAN__ 1 +__FLT32X_IS_IEC_60559__ 1 +__FLT64X_MANT_DIG__ 64 +__FLT64X_DIG__ 18 +__FLT64X_MIN_EXP__ (-16381) +__FLT64X_MIN_10_EXP__ (-4931) +__FLT64X_MAX_EXP__ 16384 +__FLT64X_MAX_10_EXP__ 4932 +__FLT64X_DECIMAL_DIG__ 21 +__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +__FLT64X_HAS_DENORM__ 1 +__FLT64X_HAS_INFINITY__ 1 +__FLT64X_HAS_QUIET_NAN__ 1 +__FLT64X_IS_IEC_60559__ 1 +__BFLT16_MANT_DIG__ 8 +__BFLT16_DIG__ 2 +__BFLT16_MIN_EXP__ (-125) +__BFLT16_MIN_10_EXP__ (-37) +__BFLT16_MAX_EXP__ 128 +__BFLT16_MAX_10_EXP__ 38 +__BFLT16_DECIMAL_DIG__ 4 +__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +__BFLT16_HAS_DENORM__ 1 +__BFLT16_HAS_INFINITY__ 1 +__BFLT16_HAS_QUIET_NAN__ 1 +__BFLT16_IS_IEC_60559__ 0 +__DEC32_MANT_DIG__ 7 +__DEC32_MIN_EXP__ (-94) +__DEC32_MAX_EXP__ 97 +__DEC32_MIN__ 1E-95DF +__DEC32_MAX__ 9.999999E96DF +__DEC32_EPSILON__ 1E-6DF +__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +__DEC64_MANT_DIG__ 16 +__DEC64_MIN_EXP__ (-382) +__DEC64_MAX_EXP__ 385 +__DEC64_MIN__ 1E-383DD +__DEC64_MAX__ 9.999999999999999E384DD +__DEC64_EPSILON__ 1E-15DD +__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +__DEC128_MANT_DIG__ 34 +__DEC128_MIN_EXP__ (-6142) +__DEC128_MAX_EXP__ 6145 +__DEC128_MIN__ 1E-6143DL +__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +__DEC128_EPSILON__ 1E-33DL +__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +__REGISTER_PREFIX__ +__USER_LABEL_PREFIX__ +__GNUC_STDC_INLINE__ 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +__GCC_ATOMIC_BOOL_LOCK_FREE 2 +__GCC_ATOMIC_CHAR_LOCK_FREE 2 +__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +__GCC_ATOMIC_SHORT_LOCK_FREE 2 +__GCC_ATOMIC_INT_LOCK_FREE 2 +__GCC_ATOMIC_LONG_LOCK_FREE 2 +__GCC_ATOMIC_LLONG_LOCK_FREE 2 +__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +__GCC_DESTRUCTIVE_SIZE 64 +__GCC_CONSTRUCTIVE_SIZE 64 +__GCC_ATOMIC_POINTER_LOCK_FREE 2 +__HAVE_SPECULATION_SAFE_VALUE 1 +__GCC_HAVE_DWARF2_CFI_ASM 1 +__PRAGMA_REDEFINE_EXTNAME 1 +__SIZEOF_INT128__ 16 +__SIZEOF_WCHAR_T__ 4 +__SIZEOF_WINT_T__ 4 +__SIZEOF_PTRDIFF_T__ 8 +__amd64 1 +__amd64__ 1 +__x86_64 1 +__x86_64__ 1 +__SIZEOF_FLOAT80__ 16 +__SIZEOF_FLOAT128__ 16 +__ATOMIC_HLE_ACQUIRE 65536 +__ATOMIC_HLE_RELEASE 131072 +__GCC_ASM_FLAG_OUTPUTS__ 1 +__k8 1 +__k8__ 1 +__code_model_small__ 1 +__MMX__ 1 +__SSE__ 1 +__SSE2__ 1 +__FXSR__ 1 +__SSE_MATH__ 1 +__SSE2_MATH__ 1 +__MMX_WITH_SSE__ 1 +__SEG_FS 1 +__SEG_GS 1 +__gnu_linux__ 1 +__linux 1 +__linux__ 1 +linux 1 +__unix 1 +__unix__ 1 +unix 1 +__ELF__ 1 +__DECIMAL_BID_FORMAT__ 1 +_GNU_SOURCE 1 +file /home/osandov/src/elfutils/tests/foo.cc + file /usr/include/stdc-predef.h + _STDC_PREDEF_H 1 + __STDC_IEC_559__ 1 + __STDC_IEC_60559_BFP__ 201404L + __STDC_IEC_559_COMPLEX__ 1 + __STDC_IEC_60559_COMPLEX__ 201404L + __STDC_ISO_10646__ 201706L + /file + file /home/osandov/src/elfutils/tests/foobar.h + FROB(x) ((x) ^ 0x2a2a2a2a) + FRY(x) ((x) * 0x100000001b3) + /file + ZERO() (1 - 1) +/file +CU bar.cc +__STDC__ 1 +__cplusplus 201703L +__STDC_UTF_16__ 1 +__STDC_UTF_32__ 1 +__STDC_HOSTED__ 1 +__GNUC__ 14 +__GNUC_MINOR__ 0 +__GNUC_PATCHLEVEL__ 0 +__VERSION__ "14.0.0 20230920 (experimental)" +__ATOMIC_RELAXED 0 +__ATOMIC_SEQ_CST 5 +__ATOMIC_ACQUIRE 2 +__ATOMIC_RELEASE 3 +__ATOMIC_ACQ_REL 4 +__ATOMIC_CONSUME 1 +__OPTIMIZE__ 1 +__FINITE_MATH_ONLY__ 0 +_LP64 1 +__LP64__ 1 +__SIZEOF_INT__ 4 +__SIZEOF_LONG__ 8 +__SIZEOF_LONG_LONG__ 8 +__SIZEOF_SHORT__ 2 +__SIZEOF_FLOAT__ 4 +__SIZEOF_DOUBLE__ 8 +__SIZEOF_LONG_DOUBLE__ 16 +__SIZEOF_SIZE_T__ 8 +__CHAR_BIT__ 8 +__BIGGEST_ALIGNMENT__ 16 +__ORDER_LITTLE_ENDIAN__ 1234 +__ORDER_BIG_ENDIAN__ 4321 +__ORDER_PDP_ENDIAN__ 3412 +__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +__SIZEOF_POINTER__ 8 +__GNUC_EXECUTION_CHARSET_NAME "UTF-8" +__GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +__GNUG__ 14 +__SIZE_TYPE__ long unsigned int +__PTRDIFF_TYPE__ long int +__WCHAR_TYPE__ int +__WINT_TYPE__ unsigned int +__INTMAX_TYPE__ long int +__UINTMAX_TYPE__ long unsigned int +__CHAR16_TYPE__ short unsigned int +__CHAR32_TYPE__ unsigned int +__SIG_ATOMIC_TYPE__ int +__INT8_TYPE__ signed char +__INT16_TYPE__ short int +__INT32_TYPE__ int +__INT64_TYPE__ long int +__UINT8_TYPE__ unsigned char +__UINT16_TYPE__ short unsigned int +__UINT32_TYPE__ unsigned int +__UINT64_TYPE__ long unsigned int +__INT_LEAST8_TYPE__ signed char +__INT_LEAST16_TYPE__ short int +__INT_LEAST32_TYPE__ int +__INT_LEAST64_TYPE__ long int +__UINT_LEAST8_TYPE__ unsigned char +__UINT_LEAST16_TYPE__ short unsigned int +__UINT_LEAST32_TYPE__ unsigned int +__UINT_LEAST64_TYPE__ long unsigned int +__INT_FAST8_TYPE__ signed char +__INT_FAST16_TYPE__ long int +__INT_FAST32_TYPE__ long int +__INT_FAST64_TYPE__ long int +__UINT_FAST8_TYPE__ unsigned char +__UINT_FAST16_TYPE__ long unsigned int +__UINT_FAST32_TYPE__ long unsigned int +__UINT_FAST64_TYPE__ long unsigned int +__INTPTR_TYPE__ long int +__UINTPTR_TYPE__ long unsigned int +__GXX_WEAK__ 1 +__DEPRECATED 1 +__GXX_RTTI 1 +__cpp_rtti 199711L +__GXX_EXPERIMENTAL_CXX0X__ 1 +__cpp_binary_literals 201304L +__cpp_hex_float 201603L +__cpp_runtime_arrays 198712L +__cpp_raw_strings 200710L +__cpp_unicode_literals 200710L +__cpp_user_defined_literals 200809L +__cpp_lambdas 200907L +__cpp_decltype 200707L +__cpp_attributes 200809L +__cpp_rvalue_reference 200610L +__cpp_rvalue_references 200610L +__cpp_variadic_templates 200704L +__cpp_initializer_lists 200806L +__cpp_delegating_constructors 200604L +__cpp_nsdmi 200809L +__cpp_inheriting_constructors 201511L +__cpp_ref_qualifiers 200710L +__cpp_alias_templates 200704L +__cpp_return_type_deduction 201304L +__cpp_init_captures 201304L +__cpp_generic_lambdas 201304L +__cpp_decltype_auto 201304L +__cpp_aggregate_nsdmi 201304L +__cpp_variable_templates 201304L +__cpp_digit_separators 201309L +__cpp_unicode_characters 201411L +__cpp_static_assert 201411L +__cpp_namespace_attributes 201411L +__cpp_enumerator_attributes 201411L +__cpp_nested_namespace_definitions 201411L +__cpp_fold_expressions 201603L +__cpp_nontype_template_args 201411L +__cpp_range_based_for 201603L +__cpp_constexpr 201603L +__cpp_if_constexpr 201606L +__cpp_capture_star_this 201603L +__cpp_inline_variables 201606L +__cpp_aggregate_bases 201603L +__cpp_deduction_guides 201703L +__cpp_noexcept_function_type 201510L +__cpp_template_auto 201606L +__cpp_structured_bindings 201606L +__cpp_variadic_using 201611L +__cpp_guaranteed_copy_elision 201606L +__cpp_nontype_template_parameter_auto 201606L +__cpp_sized_deallocation 201309L +__cpp_aligned_new 201606L +__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +__cpp_template_template_args 201611L +__cpp_threadsafe_static_init 200806L +__STDCPP_THREADS__ 1 +__EXCEPTIONS 1 +__cpp_exceptions 199711L +__GXX_ABI_VERSION 1019 +__SCHAR_MAX__ 0x7f +__SHRT_MAX__ 0x7fff +__INT_MAX__ 0x7fffffff +__LONG_MAX__ 0x7fffffffffffffffL +__LONG_LONG_MAX__ 0x7fffffffffffffffLL +__WCHAR_MAX__ 0x7fffffff +__WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +__WINT_MAX__ 0xffffffffU +__WINT_MIN__ 0U +__PTRDIFF_MAX__ 0x7fffffffffffffffL +__SIZE_MAX__ 0xffffffffffffffffUL +__SCHAR_WIDTH__ 8 +__SHRT_WIDTH__ 16 +__INT_WIDTH__ 32 +__LONG_WIDTH__ 64 +__LONG_LONG_WIDTH__ 64 +__WCHAR_WIDTH__ 32 +__WINT_WIDTH__ 32 +__PTRDIFF_WIDTH__ 64 +__SIZE_WIDTH__ 64 +__GLIBCXX_TYPE_INT_N_0 __int128 +__GLIBCXX_BITSIZE_INT_N_0 128 +__INTMAX_MAX__ 0x7fffffffffffffffL +__INTMAX_C(c) c ## L +__UINTMAX_MAX__ 0xffffffffffffffffUL +__UINTMAX_C(c) c ## UL +__INTMAX_WIDTH__ 64 +__SIG_ATOMIC_MAX__ 0x7fffffff +__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +__SIG_ATOMIC_WIDTH__ 32 +__INT8_MAX__ 0x7f +__INT16_MAX__ 0x7fff +__INT32_MAX__ 0x7fffffff +__INT64_MAX__ 0x7fffffffffffffffL +__UINT8_MAX__ 0xff +__UINT16_MAX__ 0xffff +__UINT32_MAX__ 0xffffffffU +__UINT64_MAX__ 0xffffffffffffffffUL +__INT_LEAST8_MAX__ 0x7f +__INT8_C(c) c +__INT_LEAST8_WIDTH__ 8 +__INT_LEAST16_MAX__ 0x7fff +__INT16_C(c) c +__INT_LEAST16_WIDTH__ 16 +__INT_LEAST32_MAX__ 0x7fffffff +__INT32_C(c) c +__INT_LEAST32_WIDTH__ 32 +__INT_LEAST64_MAX__ 0x7fffffffffffffffL +__INT64_C(c) c ## L +__INT_LEAST64_WIDTH__ 64 +__UINT_LEAST8_MAX__ 0xff +__UINT8_C(c) c +__UINT_LEAST16_MAX__ 0xffff +__UINT16_C(c) c +__UINT_LEAST32_MAX__ 0xffffffffU +__UINT32_C(c) c ## U +__UINT_LEAST64_MAX__ 0xffffffffffffffffUL +__UINT64_C(c) c ## UL +__INT_FAST8_MAX__ 0x7f +__INT_FAST8_WIDTH__ 8 +__INT_FAST16_MAX__ 0x7fffffffffffffffL +__INT_FAST16_WIDTH__ 64 +__INT_FAST32_MAX__ 0x7fffffffffffffffL +__INT_FAST32_WIDTH__ 64 +__INT_FAST64_MAX__ 0x7fffffffffffffffL +__INT_FAST64_WIDTH__ 64 +__UINT_FAST8_MAX__ 0xff +__UINT_FAST16_MAX__ 0xffffffffffffffffUL +__UINT_FAST32_MAX__ 0xffffffffffffffffUL +__UINT_FAST64_MAX__ 0xffffffffffffffffUL +__INTPTR_MAX__ 0x7fffffffffffffffL +__INTPTR_WIDTH__ 64 +__UINTPTR_MAX__ 0xffffffffffffffffUL +__GCC_IEC_559 2 +__GCC_IEC_559_COMPLEX 2 +__FLT_EVAL_METHOD__ 0 +__FLT_EVAL_METHOD_TS_18661_3__ 0 +__DEC_EVAL_METHOD__ 2 +__FLT_RADIX__ 2 +__FLT_MANT_DIG__ 24 +__FLT_DIG__ 6 +__FLT_MIN_EXP__ (-125) +__FLT_MIN_10_EXP__ (-37) +__FLT_MAX_EXP__ 128 +__FLT_MAX_10_EXP__ 38 +__FLT_DECIMAL_DIG__ 9 +__FLT_MAX__ 3.40282346638528859811704183484516925e+38F +__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +__FLT_MIN__ 1.17549435082228750796873653722224568e-38F +__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +__FLT_HAS_DENORM__ 1 +__FLT_HAS_INFINITY__ 1 +__FLT_HAS_QUIET_NAN__ 1 +__FLT_IS_IEC_60559__ 1 +__DBL_MANT_DIG__ 53 +__DBL_DIG__ 15 +__DBL_MIN_EXP__ (-1021) +__DBL_MIN_10_EXP__ (-307) +__DBL_MAX_EXP__ 1024 +__DBL_MAX_10_EXP__ 308 +__DBL_DECIMAL_DIG__ 17 +__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +__DBL_HAS_DENORM__ 1 +__DBL_HAS_INFINITY__ 1 +__DBL_HAS_QUIET_NAN__ 1 +__DBL_IS_IEC_60559__ 1 +__LDBL_MANT_DIG__ 64 +__LDBL_DIG__ 18 +__LDBL_MIN_EXP__ (-16381) +__LDBL_MIN_10_EXP__ (-4931) +__LDBL_MAX_EXP__ 16384 +__LDBL_MAX_10_EXP__ 4932 +__DECIMAL_DIG__ 21 +__LDBL_DECIMAL_DIG__ 21 +__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +__LDBL_HAS_DENORM__ 1 +__LDBL_HAS_INFINITY__ 1 +__LDBL_HAS_QUIET_NAN__ 1 +__LDBL_IS_IEC_60559__ 1 +__FLT16_MANT_DIG__ 11 +__FLT16_DIG__ 3 +__FLT16_MIN_EXP__ (-13) +__FLT16_MIN_10_EXP__ (-4) +__FLT16_MAX_EXP__ 16 +__FLT16_MAX_10_EXP__ 4 +__FLT16_DECIMAL_DIG__ 5 +__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +__FLT16_HAS_DENORM__ 1 +__FLT16_HAS_INFINITY__ 1 +__FLT16_HAS_QUIET_NAN__ 1 +__FLT16_IS_IEC_60559__ 1 +__FLT32_MANT_DIG__ 24 +__FLT32_DIG__ 6 +__FLT32_MIN_EXP__ (-125) +__FLT32_MIN_10_EXP__ (-37) +__FLT32_MAX_EXP__ 128 +__FLT32_MAX_10_EXP__ 38 +__FLT32_DECIMAL_DIG__ 9 +__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +__FLT32_HAS_DENORM__ 1 +__FLT32_HAS_INFINITY__ 1 +__FLT32_HAS_QUIET_NAN__ 1 +__FLT32_IS_IEC_60559__ 1 +__FLT64_MANT_DIG__ 53 +__FLT64_DIG__ 15 +__FLT64_MIN_EXP__ (-1021) +__FLT64_MIN_10_EXP__ (-307) +__FLT64_MAX_EXP__ 1024 +__FLT64_MAX_10_EXP__ 308 +__FLT64_DECIMAL_DIG__ 17 +__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +__FLT64_HAS_DENORM__ 1 +__FLT64_HAS_INFINITY__ 1 +__FLT64_HAS_QUIET_NAN__ 1 +__FLT64_IS_IEC_60559__ 1 +__FLT128_MANT_DIG__ 113 +__FLT128_DIG__ 33 +__FLT128_MIN_EXP__ (-16381) +__FLT128_MIN_10_EXP__ (-4931) +__FLT128_MAX_EXP__ 16384 +__FLT128_MAX_10_EXP__ 4932 +__FLT128_DECIMAL_DIG__ 36 +__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +__FLT128_HAS_DENORM__ 1 +__FLT128_HAS_INFINITY__ 1 +__FLT128_HAS_QUIET_NAN__ 1 +__FLT128_IS_IEC_60559__ 1 +__FLT32X_MANT_DIG__ 53 +__FLT32X_DIG__ 15 +__FLT32X_MIN_EXP__ (-1021) +__FLT32X_MIN_10_EXP__ (-307) +__FLT32X_MAX_EXP__ 1024 +__FLT32X_MAX_10_EXP__ 308 +__FLT32X_DECIMAL_DIG__ 17 +__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +__FLT32X_HAS_DENORM__ 1 +__FLT32X_HAS_INFINITY__ 1 +__FLT32X_HAS_QUIET_NAN__ 1 +__FLT32X_IS_IEC_60559__ 1 +__FLT64X_MANT_DIG__ 64 +__FLT64X_DIG__ 18 +__FLT64X_MIN_EXP__ (-16381) +__FLT64X_MIN_10_EXP__ (-4931) +__FLT64X_MAX_EXP__ 16384 +__FLT64X_MAX_10_EXP__ 4932 +__FLT64X_DECIMAL_DIG__ 21 +__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +__FLT64X_HAS_DENORM__ 1 +__FLT64X_HAS_INFINITY__ 1 +__FLT64X_HAS_QUIET_NAN__ 1 +__FLT64X_IS_IEC_60559__ 1 +__BFLT16_MANT_DIG__ 8 +__BFLT16_DIG__ 2 +__BFLT16_MIN_EXP__ (-125) +__BFLT16_MIN_10_EXP__ (-37) +__BFLT16_MAX_EXP__ 128 +__BFLT16_MAX_10_EXP__ 38 +__BFLT16_DECIMAL_DIG__ 4 +__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +__BFLT16_HAS_DENORM__ 1 +__BFLT16_HAS_INFINITY__ 1 +__BFLT16_HAS_QUIET_NAN__ 1 +__BFLT16_IS_IEC_60559__ 0 +__DEC32_MANT_DIG__ 7 +__DEC32_MIN_EXP__ (-94) +__DEC32_MAX_EXP__ 97 +__DEC32_MIN__ 1E-95DF +__DEC32_MAX__ 9.999999E96DF +__DEC32_EPSILON__ 1E-6DF +__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +__DEC64_MANT_DIG__ 16 +__DEC64_MIN_EXP__ (-382) +__DEC64_MAX_EXP__ 385 +__DEC64_MIN__ 1E-383DD +__DEC64_MAX__ 9.999999999999999E384DD +__DEC64_EPSILON__ 1E-15DD +__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +__DEC128_MANT_DIG__ 34 +__DEC128_MIN_EXP__ (-6142) +__DEC128_MAX_EXP__ 6145 +__DEC128_MIN__ 1E-6143DL +__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +__DEC128_EPSILON__ 1E-33DL +__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +__REGISTER_PREFIX__ +__USER_LABEL_PREFIX__ +__GNUC_STDC_INLINE__ 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +__GCC_ATOMIC_BOOL_LOCK_FREE 2 +__GCC_ATOMIC_CHAR_LOCK_FREE 2 +__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +__GCC_ATOMIC_SHORT_LOCK_FREE 2 +__GCC_ATOMIC_INT_LOCK_FREE 2 +__GCC_ATOMIC_LONG_LOCK_FREE 2 +__GCC_ATOMIC_LLONG_LOCK_FREE 2 +__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +__GCC_DESTRUCTIVE_SIZE 64 +__GCC_CONSTRUCTIVE_SIZE 64 +__GCC_ATOMIC_POINTER_LOCK_FREE 2 +__HAVE_SPECULATION_SAFE_VALUE 1 +__GCC_HAVE_DWARF2_CFI_ASM 1 +__PRAGMA_REDEFINE_EXTNAME 1 +__SIZEOF_INT128__ 16 +__SIZEOF_WCHAR_T__ 4 +__SIZEOF_WINT_T__ 4 +__SIZEOF_PTRDIFF_T__ 8 +__amd64 1 +__amd64__ 1 +__x86_64 1 +__x86_64__ 1 +__SIZEOF_FLOAT80__ 16 +__SIZEOF_FLOAT128__ 16 +__ATOMIC_HLE_ACQUIRE 65536 +__ATOMIC_HLE_RELEASE 131072 +__GCC_ASM_FLAG_OUTPUTS__ 1 +__k8 1 +__k8__ 1 +__code_model_small__ 1 +__MMX__ 1 +__SSE__ 1 +__SSE2__ 1 +__FXSR__ 1 +__SSE_MATH__ 1 +__SSE2_MATH__ 1 +__MMX_WITH_SSE__ 1 +__SEG_FS 1 +__SEG_GS 1 +__gnu_linux__ 1 +__linux 1 +__linux__ 1 +linux 1 +__unix 1 +__unix__ 1 +unix 1 +__ELF__ 1 +__DECIMAL_BID_FORMAT__ 1 +_GNU_SOURCE 1 +file /home/osandov/src/elfutils/tests/bar.cc + file /usr/include/stdc-predef.h + _STDC_PREDEF_H 1 + __STDC_IEC_559__ 1 + __STDC_IEC_60559_BFP__ 201404L + __STDC_IEC_559_COMPLEX__ 1 + __STDC_IEC_60559_COMPLEX__ 201404L + __STDC_ISO_10646__ 201706L + /file + file /home/osandov/src/elfutils/tests/foobar.h + FROB(x) ((x) ^ 0x2a2a2a2a) + FRY(x) ((x) * 0x100000001b3) + /file + ONE 1 +/file +CU main.cc +__STDC__ 1 +__cplusplus 201703L +__STDC_UTF_16__ 1 +__STDC_UTF_32__ 1 +__STDC_HOSTED__ 1 +__GNUC__ 14 +__GNUC_MINOR__ 0 +__GNUC_PATCHLEVEL__ 0 +__VERSION__ "14.0.0 20230920 (experimental)" +__ATOMIC_RELAXED 0 +__ATOMIC_SEQ_CST 5 +__ATOMIC_ACQUIRE 2 +__ATOMIC_RELEASE 3 +__ATOMIC_ACQ_REL 4 +__ATOMIC_CONSUME 1 +__OPTIMIZE__ 1 +__FINITE_MATH_ONLY__ 0 +_LP64 1 +__LP64__ 1 +__SIZEOF_INT__ 4 +__SIZEOF_LONG__ 8 +__SIZEOF_LONG_LONG__ 8 +__SIZEOF_SHORT__ 2 +__SIZEOF_FLOAT__ 4 +__SIZEOF_DOUBLE__ 8 +__SIZEOF_LONG_DOUBLE__ 16 +__SIZEOF_SIZE_T__ 8 +__CHAR_BIT__ 8 +__BIGGEST_ALIGNMENT__ 16 +__ORDER_LITTLE_ENDIAN__ 1234 +__ORDER_BIG_ENDIAN__ 4321 +__ORDER_PDP_ENDIAN__ 3412 +__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +__SIZEOF_POINTER__ 8 +__GNUC_EXECUTION_CHARSET_NAME "UTF-8" +__GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +__GNUG__ 14 +__SIZE_TYPE__ long unsigned int +__PTRDIFF_TYPE__ long int +__WCHAR_TYPE__ int +__WINT_TYPE__ unsigned int +__INTMAX_TYPE__ long int +__UINTMAX_TYPE__ long unsigned int +__CHAR16_TYPE__ short unsigned int +__CHAR32_TYPE__ unsigned int +__SIG_ATOMIC_TYPE__ int +__INT8_TYPE__ signed char +__INT16_TYPE__ short int +__INT32_TYPE__ int +__INT64_TYPE__ long int +__UINT8_TYPE__ unsigned char +__UINT16_TYPE__ short unsigned int +__UINT32_TYPE__ unsigned int +__UINT64_TYPE__ long unsigned int +__INT_LEAST8_TYPE__ signed char +__INT_LEAST16_TYPE__ short int +__INT_LEAST32_TYPE__ int +__INT_LEAST64_TYPE__ long int +__UINT_LEAST8_TYPE__ unsigned char +__UINT_LEAST16_TYPE__ short unsigned int +__UINT_LEAST32_TYPE__ unsigned int +__UINT_LEAST64_TYPE__ long unsigned int +__INT_FAST8_TYPE__ signed char +__INT_FAST16_TYPE__ long int +__INT_FAST32_TYPE__ long int +__INT_FAST64_TYPE__ long int +__UINT_FAST8_TYPE__ unsigned char +__UINT_FAST16_TYPE__ long unsigned int +__UINT_FAST32_TYPE__ long unsigned int +__UINT_FAST64_TYPE__ long unsigned int +__INTPTR_TYPE__ long int +__UINTPTR_TYPE__ long unsigned int +__GXX_WEAK__ 1 +__DEPRECATED 1 +__GXX_RTTI 1 +__cpp_rtti 199711L +__GXX_EXPERIMENTAL_CXX0X__ 1 +__cpp_binary_literals 201304L +__cpp_hex_float 201603L +__cpp_runtime_arrays 198712L +__cpp_raw_strings 200710L +__cpp_unicode_literals 200710L +__cpp_user_defined_literals 200809L +__cpp_lambdas 200907L +__cpp_decltype 200707L +__cpp_attributes 200809L +__cpp_rvalue_reference 200610L +__cpp_rvalue_references 200610L +__cpp_variadic_templates 200704L +__cpp_initializer_lists 200806L +__cpp_delegating_constructors 200604L +__cpp_nsdmi 200809L +__cpp_inheriting_constructors 201511L +__cpp_ref_qualifiers 200710L +__cpp_alias_templates 200704L +__cpp_return_type_deduction 201304L +__cpp_init_captures 201304L +__cpp_generic_lambdas 201304L +__cpp_decltype_auto 201304L +__cpp_aggregate_nsdmi 201304L +__cpp_variable_templates 201304L +__cpp_digit_separators 201309L +__cpp_unicode_characters 201411L +__cpp_static_assert 201411L +__cpp_namespace_attributes 201411L +__cpp_enumerator_attributes 201411L +__cpp_nested_namespace_definitions 201411L +__cpp_fold_expressions 201603L +__cpp_nontype_template_args 201411L +__cpp_range_based_for 201603L +__cpp_constexpr 201603L +__cpp_if_constexpr 201606L +__cpp_capture_star_this 201603L +__cpp_inline_variables 201606L +__cpp_aggregate_bases 201603L +__cpp_deduction_guides 201703L +__cpp_noexcept_function_type 201510L +__cpp_template_auto 201606L +__cpp_structured_bindings 201606L +__cpp_variadic_using 201611L +__cpp_guaranteed_copy_elision 201606L +__cpp_nontype_template_parameter_auto 201606L +__cpp_sized_deallocation 201309L +__cpp_aligned_new 201606L +__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +__cpp_template_template_args 201611L +__cpp_threadsafe_static_init 200806L +__STDCPP_THREADS__ 1 +__EXCEPTIONS 1 +__cpp_exceptions 199711L +__GXX_ABI_VERSION 1019 +__SCHAR_MAX__ 0x7f +__SHRT_MAX__ 0x7fff +__INT_MAX__ 0x7fffffff +__LONG_MAX__ 0x7fffffffffffffffL +__LONG_LONG_MAX__ 0x7fffffffffffffffLL +__WCHAR_MAX__ 0x7fffffff +__WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +__WINT_MAX__ 0xffffffffU +__WINT_MIN__ 0U +__PTRDIFF_MAX__ 0x7fffffffffffffffL +__SIZE_MAX__ 0xffffffffffffffffUL +__SCHAR_WIDTH__ 8 +__SHRT_WIDTH__ 16 +__INT_WIDTH__ 32 +__LONG_WIDTH__ 64 +__LONG_LONG_WIDTH__ 64 +__WCHAR_WIDTH__ 32 +__WINT_WIDTH__ 32 +__PTRDIFF_WIDTH__ 64 +__SIZE_WIDTH__ 64 +__GLIBCXX_TYPE_INT_N_0 __int128 +__GLIBCXX_BITSIZE_INT_N_0 128 +__INTMAX_MAX__ 0x7fffffffffffffffL +__INTMAX_C(c) c ## L +__UINTMAX_MAX__ 0xffffffffffffffffUL +__UINTMAX_C(c) c ## UL +__INTMAX_WIDTH__ 64 +__SIG_ATOMIC_MAX__ 0x7fffffff +__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +__SIG_ATOMIC_WIDTH__ 32 +__INT8_MAX__ 0x7f +__INT16_MAX__ 0x7fff +__INT32_MAX__ 0x7fffffff +__INT64_MAX__ 0x7fffffffffffffffL +__UINT8_MAX__ 0xff +__UINT16_MAX__ 0xffff +__UINT32_MAX__ 0xffffffffU +__UINT64_MAX__ 0xffffffffffffffffUL +__INT_LEAST8_MAX__ 0x7f +__INT8_C(c) c +__INT_LEAST8_WIDTH__ 8 +__INT_LEAST16_MAX__ 0x7fff +__INT16_C(c) c +__INT_LEAST16_WIDTH__ 16 +__INT_LEAST32_MAX__ 0x7fffffff +__INT32_C(c) c +__INT_LEAST32_WIDTH__ 32 +__INT_LEAST64_MAX__ 0x7fffffffffffffffL +__INT64_C(c) c ## L +__INT_LEAST64_WIDTH__ 64 +__UINT_LEAST8_MAX__ 0xff +__UINT8_C(c) c +__UINT_LEAST16_MAX__ 0xffff +__UINT16_C(c) c +__UINT_LEAST32_MAX__ 0xffffffffU +__UINT32_C(c) c ## U +__UINT_LEAST64_MAX__ 0xffffffffffffffffUL +__UINT64_C(c) c ## UL +__INT_FAST8_MAX__ 0x7f +__INT_FAST8_WIDTH__ 8 +__INT_FAST16_MAX__ 0x7fffffffffffffffL +__INT_FAST16_WIDTH__ 64 +__INT_FAST32_MAX__ 0x7fffffffffffffffL +__INT_FAST32_WIDTH__ 64 +__INT_FAST64_MAX__ 0x7fffffffffffffffL +__INT_FAST64_WIDTH__ 64 +__UINT_FAST8_MAX__ 0xff +__UINT_FAST16_MAX__ 0xffffffffffffffffUL +__UINT_FAST32_MAX__ 0xffffffffffffffffUL +__UINT_FAST64_MAX__ 0xffffffffffffffffUL +__INTPTR_MAX__ 0x7fffffffffffffffL +__INTPTR_WIDTH__ 64 +__UINTPTR_MAX__ 0xffffffffffffffffUL +__GCC_IEC_559 2 +__GCC_IEC_559_COMPLEX 2 +__FLT_EVAL_METHOD__ 0 +__FLT_EVAL_METHOD_TS_18661_3__ 0 +__DEC_EVAL_METHOD__ 2 +__FLT_RADIX__ 2 +__FLT_MANT_DIG__ 24 +__FLT_DIG__ 6 +__FLT_MIN_EXP__ (-125) +__FLT_MIN_10_EXP__ (-37) +__FLT_MAX_EXP__ 128 +__FLT_MAX_10_EXP__ 38 +__FLT_DECIMAL_DIG__ 9 +__FLT_MAX__ 3.40282346638528859811704183484516925e+38F +__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +__FLT_MIN__ 1.17549435082228750796873653722224568e-38F +__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +__FLT_HAS_DENORM__ 1 +__FLT_HAS_INFINITY__ 1 +__FLT_HAS_QUIET_NAN__ 1 +__FLT_IS_IEC_60559__ 1 +__DBL_MANT_DIG__ 53 +__DBL_DIG__ 15 +__DBL_MIN_EXP__ (-1021) +__DBL_MIN_10_EXP__ (-307) +__DBL_MAX_EXP__ 1024 +__DBL_MAX_10_EXP__ 308 +__DBL_DECIMAL_DIG__ 17 +__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +__DBL_HAS_DENORM__ 1 +__DBL_HAS_INFINITY__ 1 +__DBL_HAS_QUIET_NAN__ 1 +__DBL_IS_IEC_60559__ 1 +__LDBL_MANT_DIG__ 64 +__LDBL_DIG__ 18 +__LDBL_MIN_EXP__ (-16381) +__LDBL_MIN_10_EXP__ (-4931) +__LDBL_MAX_EXP__ 16384 +__LDBL_MAX_10_EXP__ 4932 +__DECIMAL_DIG__ 21 +__LDBL_DECIMAL_DIG__ 21 +__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +__LDBL_HAS_DENORM__ 1 +__LDBL_HAS_INFINITY__ 1 +__LDBL_HAS_QUIET_NAN__ 1 +__LDBL_IS_IEC_60559__ 1 +__FLT16_MANT_DIG__ 11 +__FLT16_DIG__ 3 +__FLT16_MIN_EXP__ (-13) +__FLT16_MIN_10_EXP__ (-4) +__FLT16_MAX_EXP__ 16 +__FLT16_MAX_10_EXP__ 4 +__FLT16_DECIMAL_DIG__ 5 +__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +__FLT16_HAS_DENORM__ 1 +__FLT16_HAS_INFINITY__ 1 +__FLT16_HAS_QUIET_NAN__ 1 +__FLT16_IS_IEC_60559__ 1 +__FLT32_MANT_DIG__ 24 +__FLT32_DIG__ 6 +__FLT32_MIN_EXP__ (-125) +__FLT32_MIN_10_EXP__ (-37) +__FLT32_MAX_EXP__ 128 +__FLT32_MAX_10_EXP__ 38 +__FLT32_DECIMAL_DIG__ 9 +__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +__FLT32_HAS_DENORM__ 1 +__FLT32_HAS_INFINITY__ 1 +__FLT32_HAS_QUIET_NAN__ 1 +__FLT32_IS_IEC_60559__ 1 +__FLT64_MANT_DIG__ 53 +__FLT64_DIG__ 15 +__FLT64_MIN_EXP__ (-1021) +__FLT64_MIN_10_EXP__ (-307) +__FLT64_MAX_EXP__ 1024 +__FLT64_MAX_10_EXP__ 308 +__FLT64_DECIMAL_DIG__ 17 +__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +__FLT64_HAS_DENORM__ 1 +__FLT64_HAS_INFINITY__ 1 +__FLT64_HAS_QUIET_NAN__ 1 +__FLT64_IS_IEC_60559__ 1 +__FLT128_MANT_DIG__ 113 +__FLT128_DIG__ 33 +__FLT128_MIN_EXP__ (-16381) +__FLT128_MIN_10_EXP__ (-4931) +__FLT128_MAX_EXP__ 16384 +__FLT128_MAX_10_EXP__ 4932 +__FLT128_DECIMAL_DIG__ 36 +__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +__FLT128_HAS_DENORM__ 1 +__FLT128_HAS_INFINITY__ 1 +__FLT128_HAS_QUIET_NAN__ 1 +__FLT128_IS_IEC_60559__ 1 +__FLT32X_MANT_DIG__ 53 +__FLT32X_DIG__ 15 +__FLT32X_MIN_EXP__ (-1021) +__FLT32X_MIN_10_EXP__ (-307) +__FLT32X_MAX_EXP__ 1024 +__FLT32X_MAX_10_EXP__ 308 +__FLT32X_DECIMAL_DIG__ 17 +__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +__FLT32X_HAS_DENORM__ 1 +__FLT32X_HAS_INFINITY__ 1 +__FLT32X_HAS_QUIET_NAN__ 1 +__FLT32X_IS_IEC_60559__ 1 +__FLT64X_MANT_DIG__ 64 +__FLT64X_DIG__ 18 +__FLT64X_MIN_EXP__ (-16381) +__FLT64X_MIN_10_EXP__ (-4931) +__FLT64X_MAX_EXP__ 16384 +__FLT64X_MAX_10_EXP__ 4932 +__FLT64X_DECIMAL_DIG__ 21 +__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +__FLT64X_HAS_DENORM__ 1 +__FLT64X_HAS_INFINITY__ 1 +__FLT64X_HAS_QUIET_NAN__ 1 +__FLT64X_IS_IEC_60559__ 1 +__BFLT16_MANT_DIG__ 8 +__BFLT16_DIG__ 2 +__BFLT16_MIN_EXP__ (-125) +__BFLT16_MIN_10_EXP__ (-37) +__BFLT16_MAX_EXP__ 128 +__BFLT16_MAX_10_EXP__ 38 +__BFLT16_DECIMAL_DIG__ 4 +__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +__BFLT16_HAS_DENORM__ 1 +__BFLT16_HAS_INFINITY__ 1 +__BFLT16_HAS_QUIET_NAN__ 1 +__BFLT16_IS_IEC_60559__ 0 +__DEC32_MANT_DIG__ 7 +__DEC32_MIN_EXP__ (-94) +__DEC32_MAX_EXP__ 97 +__DEC32_MIN__ 1E-95DF +__DEC32_MAX__ 9.999999E96DF +__DEC32_EPSILON__ 1E-6DF +__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +__DEC64_MANT_DIG__ 16 +__DEC64_MIN_EXP__ (-382) +__DEC64_MAX_EXP__ 385 +__DEC64_MIN__ 1E-383DD +__DEC64_MAX__ 9.999999999999999E384DD +__DEC64_EPSILON__ 1E-15DD +__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +__DEC128_MANT_DIG__ 34 +__DEC128_MIN_EXP__ (-6142) +__DEC128_MAX_EXP__ 6145 +__DEC128_MIN__ 1E-6143DL +__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +__DEC128_EPSILON__ 1E-33DL +__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +__REGISTER_PREFIX__ +__USER_LABEL_PREFIX__ +__GNUC_STDC_INLINE__ 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +__GCC_ATOMIC_BOOL_LOCK_FREE 2 +__GCC_ATOMIC_CHAR_LOCK_FREE 2 +__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +__GCC_ATOMIC_SHORT_LOCK_FREE 2 +__GCC_ATOMIC_INT_LOCK_FREE 2 +__GCC_ATOMIC_LONG_LOCK_FREE 2 +__GCC_ATOMIC_LLONG_LOCK_FREE 2 +__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +__GCC_DESTRUCTIVE_SIZE 64 +__GCC_CONSTRUCTIVE_SIZE 64 +__GCC_ATOMIC_POINTER_LOCK_FREE 2 +__HAVE_SPECULATION_SAFE_VALUE 1 +__GCC_HAVE_DWARF2_CFI_ASM 1 +__PRAGMA_REDEFINE_EXTNAME 1 +__SIZEOF_INT128__ 16 +__SIZEOF_WCHAR_T__ 4 +__SIZEOF_WINT_T__ 4 +__SIZEOF_PTRDIFF_T__ 8 +__amd64 1 +__amd64__ 1 +__x86_64 1 +__x86_64__ 1 +__SIZEOF_FLOAT80__ 16 +__SIZEOF_FLOAT128__ 16 +__ATOMIC_HLE_ACQUIRE 65536 +__ATOMIC_HLE_RELEASE 131072 +__GCC_ASM_FLAG_OUTPUTS__ 1 +__k8 1 +__k8__ 1 +__code_model_small__ 1 +__MMX__ 1 +__SSE__ 1 +__SSE2__ 1 +__FXSR__ 1 +__SSE_MATH__ 1 +__SSE2_MATH__ 1 +__MMX_WITH_SSE__ 1 +__SEG_FS 1 +__SEG_GS 1 +__gnu_linux__ 1 +__linux 1 +__linux__ 1 +linux 1 +__unix 1 +__unix__ 1 +unix 1 +__ELF__ 1 +__DECIMAL_BID_FORMAT__ 1 +_GNU_SOURCE 1 +file /home/osandov/src/elfutils/tests/main.cc + file /usr/include/stdc-predef.h + _STDC_PREDEF_H 1 + __STDC_IEC_559__ 1 + __STDC_IEC_60559_BFP__ 201404L + __STDC_IEC_559_COMPLEX__ 1 + __STDC_IEC_60559_COMPLEX__ 201404L + __STDC_ISO_10646__ 201706L + /file + file /home/osandov/src/elfutils/tests/foobar.h + FROB(x) ((x) ^ 0x2a2a2a2a) + FRY(x) ((x) * 0x100000001b3) + /file + MAIN_ARGS int argc, char **argv +/file +EOF +done + exit 0 diff --git a/tests/run-get-files.sh b/tests/run-get-files.sh index 6f90be7d..1306544d 100755 --- a/tests/run-get-files.sh +++ b/tests/run-get-files.sh @@ -130,4 +130,119 @@ cuhl = 20, o = 0, asz = 8, osz = 4, ncu = 296 file[3] = "/usr/include/stdlib.h" EOF +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp + +testrun_compare ${abs_builddir}/get-files testfile-dwp-5 << EOF +cuhl = 20, o = 0, asz = 8, osz = 4, ncu = 53 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/foo.cc" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 20, o = 21, asz = 8, osz = 4, ncu = 106 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/bar.cc" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 20, o = 42, asz = 8, osz = 4, ncu = 155 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/main.cc" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + +# Note that this one includes the type units in .debug_info.dwo as expected. +testrun_compare ${abs_builddir}/get-files testfile-dwp-5.dwp << EOF +cuhl = 24, o = 0, asz = 8, osz = 4, ncu = 112 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/foo.cc" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 20, o = 0, asz = 8, osz = 4, ncu = 376 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/foo.cc" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 24, o = 0, asz = 8, osz = 4, ncu = 486 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/bar.cc" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 20, o = 0, asz = 8, osz = 4, ncu = 606 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/bar.cc" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 20, o = 0, asz = 8, osz = 4, ncu = 1009 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/main.cc" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + +testrun_compare ${abs_builddir}/get-files testfile-dwp-4 << EOF +cuhl = 11, o = 0, asz = 8, osz = 4, ncu = 56 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 11, o = 29, asz = 8, osz = 4, ncu = 108 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 11, o = 55, asz = 8, osz = 4, ncu = 160 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + +testrun_compare ${abs_builddir}/get-files testfile-dwp-4.dwp << EOF +cuhl = 11, o = 0, asz = 8, osz = 4, ncu = 286 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 11, o = 0, asz = 8, osz = 4, ncu = 404 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +cuhl = 11, o = 0, asz = 8, osz = 4, ncu = 857 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + exit 0 diff --git a/tests/run-get-lines.sh b/tests/run-get-lines.sh index fb48c77d..0c4e3389 100755 --- a/tests/run-get-lines.sh +++ b/tests/run-get-lines.sh @@ -88,4 +88,248 @@ cuhl = 11, o = 125, asz = 8, osz = 4, ncu = 243 0 lines EOF +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp + +testrun_compare ${abs_builddir}/get-lines testfile-dwp-5 << EOF +cuhl = 20, o = 0, asz = 8, osz = 4, ncu = 53 + 63 lines +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401192: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401196: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bc: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:15:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:11: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c5: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cd: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d7: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:19:10: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f0: /home/osandov/src/elfutils/tests/foo.cc:20:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011fc: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +cuhl = 20, o = 21, asz = 8, osz = 4, ncu = 106 + 7 lines +401200: /home/osandov/src/elfutils/tests/bar.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401204: /home/osandov/src/elfutils/tests/bar.cc:8:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401207: /home/osandov/src/elfutils/tests/bar.cc:11:18: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121a: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121b: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +cuhl = 20, o = 42, asz = 8, osz = 4, ncu = 155 + 41 lines +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401021: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401028: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40102c: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/main.cc:9:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:17:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:20:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401032: /home/osandov/src/elfutils/tests/main.cc:8:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401036: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40103f: /home/osandov/src/elfutils/tests/foobar.h:25:25: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401044: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401049: /home/osandov/src/elfutils/tests/foobar.h:23:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401050: /home/osandov/src/elfutils/tests/foobar.h:27:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401053: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401056: /home/osandov/src/elfutils/tests/foobar.h:27:9: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:28:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401065: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401068: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401076: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401080: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401085: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108a: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108c: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401091: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401095: /home/osandov/src/elfutils/tests/main.cc:10:22: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401097: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401099: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4010a0: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +EOF + +testrun_compare ${abs_builddir}/get-lines testfile-dwp-4 << EOF +cuhl = 11, o = 0, asz = 8, osz = 4, ncu = 56 + 63 lines +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401192: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401196: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bc: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:15:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:11: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c5: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cd: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d7: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:19:10: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f0: /home/osandov/src/elfutils/tests/foo.cc:20:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011fc: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +cuhl = 11, o = 29, asz = 8, osz = 4, ncu = 108 + 7 lines +401200: /home/osandov/src/elfutils/tests/bar.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401204: /home/osandov/src/elfutils/tests/bar.cc:8:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401207: /home/osandov/src/elfutils/tests/bar.cc:11:18: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121a: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121b: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +cuhl = 11, o = 55, asz = 8, osz = 4, ncu = 160 + 41 lines +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401021: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401028: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40102c: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/main.cc:9:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:17:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:20:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401032: /home/osandov/src/elfutils/tests/main.cc:8:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401036: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40103f: /home/osandov/src/elfutils/tests/foobar.h:25:25: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401044: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401049: /home/osandov/src/elfutils/tests/foobar.h:23:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401050: /home/osandov/src/elfutils/tests/foobar.h:27:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401053: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401056: /home/osandov/src/elfutils/tests/foobar.h:27:9: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:28:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401065: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401068: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401076: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401080: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401085: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108a: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108c: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401091: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401095: /home/osandov/src/elfutils/tests/main.cc:10:22: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401097: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401099: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4010a0: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +EOF + exit 0 diff --git a/tests/run-get-units-split.sh b/tests/run-get-units-split.sh index 7a43c670..6c7a4f25 100755 --- a/tests/run-get-units-split.sh +++ b/tests/run-get-units-split.sh @@ -63,4 +63,22 @@ EOF testrun_on_self_exe ${abs_builddir}/get-units-split testrun_on_self_lib ${abs_builddir}/get-units-split +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp +testfiles testfile-dwp-4-strict testfile-dwp-4-strict.dwp + +for file in testfile-dwp-5 testfile-dwp-4 testfile-dwp-4-strict; do + testrun_compare ${abs_builddir}/get-units-split "$file" << EOF +file: $file +Got cudie unit_type: 4 +Found a skeleton unit, with split die: foo.cc +Got cudie unit_type: 4 +Found a skeleton unit, with split die: bar.cc +Got cudie unit_type: 4 +Found a skeleton unit, with split die: main.cc + +EOF +done + exit 0 diff --git a/tests/run-next-files.sh b/tests/run-next-files.sh index 7a3b6d0f..150a6a1a 100755 --- a/tests/run-next-files.sh +++ b/tests/run-next-files.sh @@ -162,4 +162,104 @@ off = 480 file[1] = "f.c" EOF +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp + +testrun_compare ${abs_builddir}/next-files testfile-dwp-5 << EOF +off = 0 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/foo.cc" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 383 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/bar.cc" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 487 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/main.cc" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + +testrun_compare ${abs_builddir}/next-files testfile-dwp-5.dwp << EOF +off = 0 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/foo.cc" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 127 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/bar.cc" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 254 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "/home/osandov/src/elfutils/tests/main.cc" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + +testrun_compare ${abs_builddir}/next-files testfile-dwp-4 << EOF +off = 0 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 397 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 515 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + +testrun_compare ${abs_builddir}/next-files testfile-dwp-4.dwp << EOF +off = 0 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/foo.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 82 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/bar.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +off = 164 + dirs[0] = "/home/osandov/src/elfutils/tests" + dirs[1] = "/usr/include" + file[0] = "???" + file[1] = "/home/osandov/src/elfutils/tests/main.cc" + file[2] = "/home/osandov/src/elfutils/tests/foobar.h" + file[3] = "/usr/include/stdc-predef.h" +EOF + exit 0 diff --git a/tests/run-next-lines.sh b/tests/run-next-lines.sh index 84aee1c7..551b438e 100755 --- a/tests/run-next-lines.sh +++ b/tests/run-next-lines.sh @@ -113,4 +113,246 @@ off = 480 8048472: f.c:5:0: is_stmt:yes, end_seq:yes, bb:no, prologue:no, epilogue:no EOF +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testrun_compare ${abs_builddir}/next-lines testfile-dwp-5 << EOF +off = 0 + 63 lines +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401192: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401196: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bc: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:15:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:11: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c5: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cd: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d7: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:19:10: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f0: /home/osandov/src/elfutils/tests/foo.cc:20:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011fc: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +off = 383 + 7 lines +401200: /home/osandov/src/elfutils/tests/bar.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401204: /home/osandov/src/elfutils/tests/bar.cc:8:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401207: /home/osandov/src/elfutils/tests/bar.cc:11:18: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121a: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121b: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +off = 487 + 41 lines +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401021: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401028: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40102c: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/main.cc:9:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:17:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:20:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401032: /home/osandov/src/elfutils/tests/main.cc:8:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401036: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40103f: /home/osandov/src/elfutils/tests/foobar.h:25:25: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401044: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401049: /home/osandov/src/elfutils/tests/foobar.h:23:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401050: /home/osandov/src/elfutils/tests/foobar.h:27:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401053: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401056: /home/osandov/src/elfutils/tests/foobar.h:27:9: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:28:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401065: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401068: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401076: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401080: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401085: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108a: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108c: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401091: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401095: /home/osandov/src/elfutils/tests/main.cc:10:22: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401097: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401099: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4010a0: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +EOF + +testfiles testfile-dwp-4 testfile-dwp-4.dwp +testrun_compare ${abs_builddir}/next-lines testfile-dwp-4 << EOF +off = 0 + 63 lines +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401190: /home/osandov/src/elfutils/tests/foo.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401192: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401196: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40119e: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a1: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011a4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011b9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011bb: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011bc: /home/osandov/src/elfutils/tests/foo.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:15:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c0: /home/osandov/src/elfutils/tests/foo.cc:16:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c2: /home/osandov/src/elfutils/tests/foo.cc:17:11: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c5: /home/osandov/src/elfutils/tests/foo.cc:17:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011c9: /home/osandov/src/elfutils/tests/foo.cc:18:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011cb: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011cd: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d1: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d4: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011d7: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e0: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:5: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e3: /home/osandov/src/elfutils/tests/foo.cc:9:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e6: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011e9: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:10:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011eb: /home/osandov/src/elfutils/tests/foo.cc:19:10: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f0: /home/osandov/src/elfutils/tests/foo.cc:20:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:6:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011f8: /home/osandov/src/elfutils/tests/foo.cc:8:21: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +4011fc: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/foo.cc:8:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +off = 397 + 7 lines +401200: /home/osandov/src/elfutils/tests/bar.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401200: /home/osandov/src/elfutils/tests/bar.cc:8:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401204: /home/osandov/src/elfutils/tests/bar.cc:8:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401207: /home/osandov/src/elfutils/tests/bar.cc:11:18: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121a: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40121b: /home/osandov/src/elfutils/tests/bar.cc:12:1: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +off = 515 + 41 lines +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:8:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401020: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401021: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401028: /home/osandov/src/elfutils/tests/main.cc:7:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40102c: /home/osandov/src/elfutils/tests/main.cc:8:28: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/main.cc:9:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:17:1: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401030: /home/osandov/src/elfutils/tests/foobar.h:20:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401032: /home/osandov/src/elfutils/tests/main.cc:8:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401036: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:19:3: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40103a: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40103f: /home/osandov/src/elfutils/tests/foobar.h:25:25: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401044: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401049: /home/osandov/src/elfutils/tests/foobar.h:23:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401050: /home/osandov/src/elfutils/tests/foobar.h:27:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401053: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401056: /home/osandov/src/elfutils/tests/foobar.h:27:9: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:28:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:29:4: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:7: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401059: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/foobar.h:25:34: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401060: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401065: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401068: /home/osandov/src/elfutils/tests/main.cc:9:40: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401076: /home/osandov/src/elfutils/tests/main.cc:9:51: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:3: is_stmt:yes, end_seq:no, bb:no, prologue:no, epilogue:no +40107b: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401080: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401085: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108a: /home/osandov/src/elfutils/tests/main.cc:10:19: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +40108c: /home/osandov/src/elfutils/tests/main.cc:10:33: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401091: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401095: /home/osandov/src/elfutils/tests/main.cc:10:22: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401097: /home/osandov/src/elfutils/tests/main.cc:11:1: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +401099: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:no, bb:no, prologue:no, epilogue:no +4010a0: /home/osandov/src/elfutils/tests/foobar.h:24:12: is_stmt:no, end_seq:yes, bb:no, prologue:no, epilogue:no +EOF + exit 0 diff --git a/tests/run-varlocs.sh b/tests/run-varlocs.sh index cbbcf6c7..4ac5f367 100755 --- a/tests/run-varlocs.sh +++ b/tests/run-varlocs.sh @@ -601,4 +601,116 @@ module 'testfile-splitdwarf4-not-split4.debug' [4011a0,4011a1) {lit0, stack_value} EOF +# See testfile-dwp.source. +testfiles testfile-dwp-5 testfile-dwp-5.dwp +testfiles testfile-dwp-4 testfile-dwp-4.dwp + +testrun_compare ${abs_builddir}/varlocs -e testfile-dwp-5 << EOF +module 'testfile-dwp-5' +[84] CU 'foo.cc'@401190 + [c6] function 'foo'@4011c0 + frame_base: {call_frame_cfa {bregx(7,8)}} + [e1] parameter 'this' + [4011c0,401200) {reg5} + [ea] variable 'x' + [4011c2,4011d4) {reg0} + [4011d4,4011d7) {reg1} + [4011d7,4011d9) {breg1(1), stack_value} + [4011f1,401200) {reg0} + [f9] inlined function 'x_x'@4011cb + [104] parameter 'x' + [4011cb,4011eb) {reg0} + [4011f1,401200) {reg0} + [14a] function 'x_x'@401190 + frame_base: {call_frame_cfa {bregx(7,8)}} + [15b] parameter 'x' + [401190,4011a1) {reg5} + [4011a1,4011bd) {reg0} +module 'testfile-dwp-5' +[1fa] CU 'bar.cc'@401200 + [23c] function 'bar'@401200 + frame_base: {call_frame_cfa {bregx(7,8)}} + [253] parameter 'this' + [401200,40121b) {reg5} +module 'testfile-dwp-5' +[272] CU 'main.cc'@0 + [2c7] function 'main'@401020 + frame_base: {call_frame_cfa {bregx(7,8)}} + [2e0] parameter 'argc' + [401020,401068) {reg5} + [401068,401080) {fbreg(-40)} + [401080,401084) {breg5(0)} + [401084,401099) {entry_value(1) {reg5}, stack_value} + [401099,4010a0) {reg5} + [2ec] parameter 'argv' + [401020,40104b) {reg4} + [40104b,401099) {entry_value(1) {reg4}, stack_value} + [401099,4010a0) {reg4} + [2f8] variable 'myfoo' + [401020,4010a0) {fbreg(-40)} + [303] variable 'mybar' + [401020,4010a0) {fbreg(-32)} + [30d] inlined function 'fibonacci'@401030 + [31c] parameter 'n' + [401030,401060) {reg5} + [401099,4010a0) {reg5} + [326] inlined function 'fibonacci' + [32f] parameter 'n' + +EOF + +testrun_compare ${abs_builddir}/varlocs -e testfile-dwp-4 << EOF +module 'testfile-dwp-4' +[b] CU 'foo.cc'@401190 + [54] function 'foo'@4011c0 + frame_base: {call_frame_cfa {bregx(7,8)}} + [6f] parameter 'this' + [4011c0,401200) {reg5} + [78] variable 'x' + [4011c2,4011d4) {reg0} + [4011d4,4011d7) {reg1} + [4011d7,4011d9) {breg1(1), stack_value} + [4011f1,401200) {reg0} + [8a] inlined function 'x_x'@4011cb + [98] parameter 'x' + [4011cb,4011eb) {reg0} + [4011f1,401200) {reg0} + [e7] function 'x_x'@401190 + frame_base: {call_frame_cfa {bregx(7,8)}} + [f8] parameter 'x' + [401190,4011a1) {reg5} + [4011a1,4011bd) {reg0} +module 'testfile-dwp-4' +[129] CU 'bar.cc'@401200 + [172] function 'bar'@401200 + frame_base: {call_frame_cfa {bregx(7,8)}} + [189] parameter 'this' + [401200,40121b) {reg5} +module 'testfile-dwp-4' +[19f] CU 'main.cc'@0 + [1fd] function 'main'@401020 + frame_base: {call_frame_cfa {bregx(7,8)}} + [216] parameter 'argc' + [401020,401068) {reg5} + [401068,401080) {fbreg(-40)} + [401080,401084) {breg5(0)} + [401084,401097) {GNU_entry_value(1) {reg5}, stack_value} + [401099,4010a0) {reg5} + [228] parameter 'argv' + [401020,40104b) {reg4} + [40104b,401099) {GNU_entry_value(1) {reg4}, stack_value} + [401099,4010a0) {reg4} + [23a] variable 'myfoo' + [401020,4010a0) {fbreg(-40)} + [247] variable 'mybar' + [401020,4010a0) {fbreg(-32)} + [253] inlined function 'fibonacci'@401030 + [265] parameter 'n' + [401030,401060) {reg5} + [401099,4010a0) {reg5} + [272] inlined function 'fibonacci' + [27e] parameter 'n' + +EOF + exit 0