aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.arch
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2017-02-20 20:53:21 +0100
committerJan Kratochvil <jan.kratochvil@redhat.com>2017-02-20 21:00:55 +0100
commit216f72a1ed20a8c9cdaea74e03be24601a1ed974 (patch)
tree1904283f1a601d402aeeab7563dafd8b1cb9a072 /gdb/testsuite/gdb.arch
parent43988095a5a4c53e6d5b00a6335454919c4fac55 (diff)
downloadgdb-216f72a1ed20a8c9cdaea74e03be24601a1ed974.zip
gdb-216f72a1ed20a8c9cdaea74e03be24601a1ed974.tar.gz
gdb-216f72a1ed20a8c9cdaea74e03be24601a1ed974.tar.bz2
DWARF-5: call sites
this patch updates all call sites related DWARF-5 renames. gdb/ChangeLog 2017-02-20 Jan Kratochvil <jan.kratochvil@redhat.com> * block.c (call_site_for_pc): Rename DW_OP_GNU_*, DW_TAG_GNU_* and DW_AT_GNU_*. * common/common-exceptions.h (enum errors): Likewise. * dwarf2-frame.c (class dwarf_expr_executor): Likewise. * dwarf2expr.c (dwarf_block_to_dwarf_reg) (dwarf_expr_context::execute_stack_op): Likewise. * dwarf2expr.h (struct dwarf_expr_context, struct dwarf_expr_piece): Likewise. * dwarf2loc.c (dwarf_evaluate_loc_desc::get_base_type) (dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value) (show_entry_values_debug, call_site_to_target_addr) (func_addr_to_tail_call_list, func_verify_no_selftailcall) (dwarf_expr_reg_to_entry_parameter, dwarf_entry_parameter_to_value) (entry_data_value_free_closure, value_of_dwarf_reg_entry) (value_of_dwarf_block_entry, indirect_pieced_value) (symbol_needs_eval_context::push_dwarf_reg_entry_value): (disassemble_dwarf_expression): Likewise. * dwarf2read.c (process_die, inherit_abstract_dies) (read_call_site_scope): Likewise. * gdbtypes.h (struct func_type, struct call_site_parameter) (struct call_site): Likewise. * stack.c (read_frame_arg): Likewise. * std-operator.def (OP_VAR_ENTRY_VALUE): Likewise. gdb/doc/ChangeLog 2017-02-20 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.texinfo (Print Settings, Tail Call Frames): Rename DW_OP_GNU_*, DW_TAG_GNU_* and DW_AT_GNU_*. gdb/testsuite/ChangeLog 2017-02-20 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.arch/amd64-entry-value-param-dwarf5.S: New file. * gdb.arch/amd64-entry-value-param-dwarf5.c: New file. * gdb.arch/amd64-entry-value-param-dwarf5.exp: New file. * gdb.arch/amd64-entry-value.exp: Rename DW_OP_GNU_*, DW_TAG_GNU_* and DW_AT_GNU_*.
Diffstat (limited to 'gdb/testsuite/gdb.arch')
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S699
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c40
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp49
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value.exp6
4 files changed, 791 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
new file mode 100644
index 0000000..8b8ee94
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
@@ -0,0 +1,699 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2012-2017 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from gdb.arch/amd64-entry-value-param-dwarf5.c
+ using -g -dA -S -O2. */
+
+ .file "amd64-entry-value-param-dwarf5.c"
+ .text
+.Ltext0:
+ .p2align 4,,15
+ .type foo.isra.0.constprop.2, @function
+foo.isra.0.constprop.2:
+.LFB4:
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:21 */
+.LM1:
+ .cfi_startproc
+.LVL0:
+/* BLOCK 2 freq:10000 seq:0 */
+/* PRED: ENTRY [100.0%] (FALLTHRU) */
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:26 */
+.LM2:
+ movl vv(%rip), %eax
+ addl $1, %eax
+ movl %eax, vv(%rip)
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:27 */
+.LM3:
+ leal 3(%rdi), %eax
+/* SUCC: EXIT [100.0%] */
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:28 */
+.LM4:
+ ret
+ .cfi_endproc
+.LFE4:
+ .size foo.isra.0.constprop.2, .-foo.isra.0.constprop.2
+ .p2align 4,,15
+ .type bar.constprop.1, @function
+bar.constprop.1:
+.LFB5:
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:31 */
+.LM5:
+ .cfi_startproc
+/* BLOCK 2 freq:10000 seq:0 */
+/* PRED: ENTRY [100.0%] (FALLTHRU) */
+.LVL1:
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:33 */
+.LM6:
+ movl $10, %edi
+ call foo.isra.0.constprop.2
+.LVL2:
+ movl $10, %edi
+ movl %eax, %edx
+ call foo.isra.0.constprop.2
+.LVL3:
+ movl $16, %edi
+ addl %eax, %edx
+ call foo.isra.0.constprop.2
+.LVL4:
+ leal 10(%rdx,%rax), %eax
+/* SUCC: EXIT [100.0%] */
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:34 */
+.LM7:
+ ret
+ .cfi_endproc
+.LFE5:
+ .size bar.constprop.1, .-bar.constprop.1
+ .section .text.startup,"ax",@progbits
+ .p2align 4,,15
+ .globl main
+ .type main, @function
+main:
+.LFB2:
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:38 */
+.LM8:
+ .cfi_startproc
+/* BLOCK 2 freq:10000 seq:0 */
+/* PRED: ENTRY [100.0%] (FALLTHRU) */
+/* SUCC: EXIT [100.0%] (ABNORMAL,SIBCALL) */
+ /* gdb.arch/amd64-entry-value-param-dwarf5.c:39 */
+.LM9:
+ jmp bar.constprop.1
+.LVL5:
+ .cfi_endproc
+.LFE2:
+ .size main, .-main
+ .comm vv,4,4
+ .text
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x199 /* Length of Compilation Unit Info */
+ .value 0x5 /* DWARF version number */
+ .byte 0x1 /* DW_UT_compile */
+ .byte 0x8 /* Pointer Size (in bytes) */
+ .long .Ldebug_abbrev0 /* Offset Into Abbrev. Section */
+ .uleb128 0xa /* (DIE (0xc) DW_TAG_compile_unit) */
+ .long .LASF2 /* DW_AT_producer: "GNU C11 7.0.1 20170218 (experimental) -mtune=generic -march=x86-64 -gdwarf-5 -O2" */
+ .byte 0x1d /* DW_AT_language */
+ .long .LASF0 /* DW_AT_name: "gdb.arch/amd64-entry-value-param-dwarf5.c" */
+ .long .LASF1 /* DW_AT_comp_dir: "" */
+ .long .LLRL0 /* DW_AT_ranges */
+ .quad 0 /* DW_AT_low_pc */
+ .long .Ldebug_line0 /* DW_AT_stmt_list */
+ .uleb128 0xb /* (DIE (0x2a) DW_TAG_variable) */
+ .ascii "vv\0" /* DW_AT_name */
+ .byte 0x1 /* DW_AT_decl_file (gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x12 /* DW_AT_decl_line */
+ .long 0x45 /* DW_AT_type */
+ /* DW_AT_external */
+ .uleb128 0x9 /* DW_AT_location */
+ .byte 0x3 /* DW_OP_addr */
+ .quad vv
+ .uleb128 0xc /* (DIE (0x3e) DW_TAG_base_type) */
+ .byte 0x4 /* DW_AT_byte_size */
+ .byte 0x5 /* DW_AT_encoding */
+ .ascii "int\0" /* DW_AT_name */
+ .uleb128 0xd /* (DIE (0x45) DW_TAG_volatile_type) */
+ .long 0x3e /* DW_AT_type */
+ .uleb128 0xe /* (DIE (0x4a) DW_TAG_subprogram) */
+ /* DW_AT_external */
+ .long .LASF3 /* DW_AT_name: "main" */
+ .byte 0x1 /* DW_AT_decl_file (gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x25 /* DW_AT_decl_line */
+ /* DW_AT_prototyped */
+ .long 0x3e /* DW_AT_type */
+ .quad .LFB2 /* DW_AT_low_pc */
+ .quad .LFE2-.LFB2 /* DW_AT_high_pc */
+ .uleb128 0x1 /* DW_AT_frame_base */
+ .byte 0x9c /* DW_OP_call_frame_cfa */
+ /* DW_AT_call_all_calls */
+ .long 0x79 /* DW_AT_sibling */
+ .uleb128 0xf /* (DIE (0x6b) DW_TAG_call_site) */
+ .quad .LVL5 /* DW_AT_call_return_pc */
+ /* DW_AT_call_tail_call */
+ .long 0x125 /* DW_AT_call_origin */
+ .byte 0 /* end of children of DIE 0x4a */
+ .uleb128 0x5 /* (DIE (0x79) DW_TAG_subprogram) */
+ .ascii "bar\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x1f /* DW_AT_decl_line */
+ /* DW_AT_prototyped */
+ .long 0x3e /* DW_AT_type */
+ .byte 0x1 /* DW_AT_inline */
+ .long 0x91 /* DW_AT_sibling */
+ .uleb128 0x1 /* (DIE (0x88) DW_TAG_formal_parameter) */
+ .ascii "x\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x1f /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .byte 0 /* end of children of DIE 0x79 */
+ .uleb128 0x5 /* (DIE (0x91) DW_TAG_subprogram) */
+ .ascii "foo\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x15 /* DW_AT_decl_line */
+ /* DW_AT_prototyped */
+ .long 0x3e /* DW_AT_type */
+ .byte 0 /* DW_AT_inline */
+ .long 0xd1 /* DW_AT_sibling */
+ .uleb128 0x1 /* (DIE (0xa0) DW_TAG_formal_parameter) */
+ .ascii "x\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x15 /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .uleb128 0x1 /* (DIE (0xa8) DW_TAG_formal_parameter) */
+ .ascii "y\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x15 /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .uleb128 0x1 /* (DIE (0xb0) DW_TAG_formal_parameter) */
+ .ascii "z\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x15 /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .uleb128 0x2 /* (DIE (0xb8) DW_TAG_variable) */
+ .ascii "a\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x17 /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .uleb128 0x2 /* (DIE (0xc0) DW_TAG_variable) */
+ .ascii "b\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x18 /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .uleb128 0x2 /* (DIE (0xc8) DW_TAG_variable) */
+ .ascii "c\0" /* DW_AT_name */
+ /* DW_AT_decl_file (1, gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .byte 0x19 /* DW_AT_decl_line */
+ .long 0x3e /* DW_AT_type */
+ .byte 0 /* end of children of DIE 0x91 */
+ .uleb128 0x10 /* (DIE (0xd1) DW_TAG_subprogram) */
+ .long 0x91 /* DW_AT_abstract_origin */
+ .quad .LFB4 /* DW_AT_low_pc */
+ .quad .LFE4-.LFB4 /* DW_AT_high_pc */
+ .uleb128 0x1 /* DW_AT_frame_base */
+ .byte 0x9c /* DW_OP_call_frame_cfa */
+ /* DW_AT_call_all_calls */
+ .long 0x125 /* DW_AT_sibling */
+ .uleb128 0x6 /* (DIE (0xec) DW_TAG_formal_parameter) */
+ .long 0xa0 /* DW_AT_abstract_origin */
+ .uleb128 0x1 /* DW_AT_location */
+ .byte 0x55 /* DW_OP_reg5 */
+ .uleb128 0x6 /* (DIE (0xf3) DW_TAG_formal_parameter) */
+ .long 0xa8 /* DW_AT_abstract_origin */
+ .uleb128 0x6 /* DW_AT_location */
+ .byte 0xfa /* DW_OP_GNU_parameter_ref */
+ .long 0xa8
+ .byte 0x9f /* DW_OP_stack_value */
+ .uleb128 0x7 /* (DIE (0xff) DW_TAG_variable) */
+ .long 0xb8 /* DW_AT_abstract_origin */
+ .uleb128 0x5 /* DW_AT_location */
+ .byte 0x75 /* DW_OP_breg5 */
+ .sleb128 0
+ .byte 0x31 /* DW_OP_lit1 */
+ .byte 0x24 /* DW_OP_shl */
+ .byte 0x9f /* DW_OP_stack_value */
+ .uleb128 0x7 /* (DIE (0x10a) DW_TAG_variable) */
+ .long 0xc0 /* DW_AT_abstract_origin */
+ .uleb128 0x8 /* DW_AT_location */
+ .byte 0xfa /* DW_OP_GNU_parameter_ref */
+ .long 0xa8
+ .byte 0x31 /* DW_OP_lit1 */
+ .byte 0x24 /* DW_OP_shl */
+ .byte 0x9f /* DW_OP_stack_value */
+ .uleb128 0x11 /* (DIE (0x118) DW_TAG_variable) */
+ .long 0xc8 /* DW_AT_abstract_origin */
+ .byte 0x6 /* DW_AT_const_value */
+ .uleb128 0x8 /* (DIE (0x11e) DW_TAG_formal_parameter) */
+ .long 0xb0 /* DW_AT_abstract_origin */
+ .byte 0x3 /* DW_AT_const_value */
+ .byte 0 /* end of children of DIE 0xd1 */
+ .uleb128 0x12 /* (DIE (0x125) DW_TAG_subprogram) */
+ .long 0x79 /* DW_AT_abstract_origin */
+ .quad .LFB5 /* DW_AT_low_pc */
+ .quad .LFE5-.LFB5 /* DW_AT_high_pc */
+ .uleb128 0x1 /* DW_AT_frame_base */
+ .byte 0x9c /* DW_OP_call_frame_cfa */
+ /* DW_AT_call_all_calls */
+ .uleb128 0x8 /* (DIE (0x13c) DW_TAG_formal_parameter) */
+ .long 0x88 /* DW_AT_abstract_origin */
+ .byte 0xa /* DW_AT_const_value */
+ .uleb128 0x9 /* (DIE (0x142) DW_TAG_call_site) */
+ .quad .LVL2 /* DW_AT_call_return_pc */
+ .long 0xd1 /* DW_AT_call_origin */
+ .long 0x161 /* DW_AT_sibling */
+ .uleb128 0x3 /* (DIE (0x153) DW_TAG_call_site_parameter) */
+ .uleb128 0x1 /* DW_AT_location */
+ .byte 0x55 /* DW_OP_reg5 */
+ .uleb128 0x2 /* DW_AT_call_value */
+ .byte 0x75 /* DW_OP_breg5 */
+ .sleb128 0
+ .uleb128 0x4 /* (DIE (0x159) DW_TAG_call_site_parameter) */
+ .long 0xa8 /* DW_AT_call_parameter */
+ .uleb128 0x1 /* DW_AT_call_value */
+ .byte 0x32 /* DW_OP_lit2 */
+ .byte 0 /* end of children of DIE 0x142 */
+ .uleb128 0x9 /* (DIE (0x161) DW_TAG_call_site) */
+ .quad .LVL3 /* DW_AT_call_return_pc */
+ .long 0xd1 /* DW_AT_call_origin */
+ .long 0x180 /* DW_AT_sibling */
+ .uleb128 0x3 /* (DIE (0x172) DW_TAG_call_site_parameter) */
+ .uleb128 0x1 /* DW_AT_location */
+ .byte 0x55 /* DW_OP_reg5 */
+ .uleb128 0x2 /* DW_AT_call_value */
+ .byte 0x75 /* DW_OP_breg5 */
+ .sleb128 0
+ .uleb128 0x4 /* (DIE (0x178) DW_TAG_call_site_parameter) */
+ .long 0xa8 /* DW_AT_call_parameter */
+ .uleb128 0x1 /* DW_AT_call_value */
+ .byte 0x34 /* DW_OP_lit4 */
+ .byte 0 /* end of children of DIE 0x161 */
+ .uleb128 0x13 /* (DIE (0x180) DW_TAG_call_site) */
+ .quad .LVL4 /* DW_AT_call_return_pc */
+ .long 0xd1 /* DW_AT_call_origin */
+ .uleb128 0x3 /* (DIE (0x18d) DW_TAG_call_site_parameter) */
+ .uleb128 0x1 /* DW_AT_location */
+ .byte 0x55 /* DW_OP_reg5 */
+ .uleb128 0x2 /* DW_AT_call_value */
+ .byte 0x75 /* DW_OP_breg5 */
+ .sleb128 0
+ .uleb128 0x4 /* (DIE (0x193) DW_TAG_call_site_parameter) */
+ .long 0xa8 /* DW_AT_call_parameter */
+ .uleb128 0x1 /* DW_AT_call_value */
+ .byte 0x3a /* DW_OP_lit10 */
+ .byte 0 /* end of children of DIE 0x180 */
+ .byte 0 /* end of children of DIE 0x125 */
+ .byte 0 /* end of children of DIE 0xc */
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 /* (abbrev code) */
+ .uleb128 0x5 /* (TAG: DW_TAG_formal_parameter) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x3a /* (DW_AT_decl_file) */
+ .uleb128 0x21 /* (DW_FORM_implicit_const) */
+ .sleb128 1 /* (gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .uleb128 0x3b /* (DW_AT_decl_line) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x49 /* (DW_AT_type) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0x2 /* (abbrev code) */
+ .uleb128 0x34 /* (TAG: DW_TAG_variable) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x3a /* (DW_AT_decl_file) */
+ .uleb128 0x21 /* (DW_FORM_implicit_const) */
+ .sleb128 1 /* (gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .uleb128 0x3b /* (DW_AT_decl_line) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x49 /* (DW_AT_type) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0x3 /* (abbrev code) */
+ .uleb128 0x49 /* (TAG: DW_TAG_call_site_parameter) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x2 /* (DW_AT_location) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .uleb128 0x7e /* (DW_AT_call_value) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .byte 0
+ .byte 0
+ .uleb128 0x4 /* (abbrev code) */
+ .uleb128 0x49 /* (TAG: DW_TAG_call_site_parameter) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x80 /* (DW_AT_call_parameter) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x7e /* (DW_AT_call_value) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .byte 0
+ .byte 0
+ .uleb128 0x5 /* (abbrev code) */
+ .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x3a /* (DW_AT_decl_file) */
+ .uleb128 0x21 /* (DW_FORM_implicit_const) */
+ .sleb128 1 /* (gdb.arch/amd64-entry-value-param-dwarf5.c) */
+ .uleb128 0x3b /* (DW_AT_decl_line) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x27 /* (DW_AT_prototyped) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x49 /* (DW_AT_type) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x20 /* (DW_AT_inline) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x1 /* (DW_AT_sibling) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0x6 /* (abbrev code) */
+ .uleb128 0x5 /* (TAG: DW_TAG_formal_parameter) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x31 /* (DW_AT_abstract_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x2 /* (DW_AT_location) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .byte 0
+ .byte 0
+ .uleb128 0x7 /* (abbrev code) */
+ .uleb128 0x34 /* (TAG: DW_TAG_variable) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x31 /* (DW_AT_abstract_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x2 /* (DW_AT_location) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .byte 0
+ .byte 0
+ .uleb128 0x8 /* (abbrev code) */
+ .uleb128 0x5 /* (TAG: DW_TAG_formal_parameter) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x31 /* (DW_AT_abstract_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x1c /* (DW_AT_const_value) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .byte 0
+ .byte 0
+ .uleb128 0x9 /* (abbrev code) */
+ .uleb128 0x48 /* (TAG: DW_TAG_call_site) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x7d /* (DW_AT_call_return_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x7f /* (DW_AT_call_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x1 /* (DW_AT_sibling) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0xa /* (abbrev code) */
+ .uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x25 /* (DW_AT_producer) */
+ .uleb128 0xe /* (DW_FORM_strp) */
+ .uleb128 0x13 /* (DW_AT_language) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x1f /* (DW_FORM_line_strp) */
+ .uleb128 0x1b /* (DW_AT_comp_dir) */
+ .uleb128 0x1f /* (DW_FORM_line_strp) */
+ .uleb128 0x55 /* (DW_AT_ranges) */
+ .uleb128 0x17 /* (DW_FORM_sec_offset) */
+ .uleb128 0x11 /* (DW_AT_low_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x10 /* (DW_AT_stmt_list) */
+ .uleb128 0x17 /* (DW_FORM_sec_offset) */
+ .byte 0
+ .byte 0
+ .uleb128 0xb /* (abbrev code) */
+ .uleb128 0x34 /* (TAG: DW_TAG_variable) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .uleb128 0x3a /* (DW_AT_decl_file) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x3b /* (DW_AT_decl_line) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x49 /* (DW_AT_type) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x3f /* (DW_AT_external) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x2 /* (DW_AT_location) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .byte 0
+ .byte 0
+ .uleb128 0xc /* (abbrev code) */
+ .uleb128 0x24 /* (TAG: DW_TAG_base_type) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0xb /* (DW_AT_byte_size) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x3e /* (DW_AT_encoding) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0x8 /* (DW_FORM_string) */
+ .byte 0
+ .byte 0
+ .uleb128 0xd /* (abbrev code) */
+ .uleb128 0x35 /* (TAG: DW_TAG_volatile_type) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x49 /* (DW_AT_type) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0xe /* (abbrev code) */
+ .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x3f /* (DW_AT_external) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x3 /* (DW_AT_name) */
+ .uleb128 0xe /* (DW_FORM_strp) */
+ .uleb128 0x3a /* (DW_AT_decl_file) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x3b /* (DW_AT_decl_line) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .uleb128 0x27 /* (DW_AT_prototyped) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x49 /* (DW_AT_type) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x11 /* (DW_AT_low_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x12 /* (DW_AT_high_pc) */
+ .uleb128 0x7 /* (DW_FORM_data8) */
+ .uleb128 0x40 /* (DW_AT_frame_base) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .uleb128 0x7a /* (DW_AT_call_all_calls) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x1 /* (DW_AT_sibling) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0xf /* (abbrev code) */
+ .uleb128 0x48 /* (TAG: DW_TAG_call_site) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x7d /* (DW_AT_call_return_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x82 /* (DW_AT_call_tail_call) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x7f /* (DW_AT_call_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0x10 /* (abbrev code) */
+ .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x31 /* (DW_AT_abstract_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x11 /* (DW_AT_low_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x12 /* (DW_AT_high_pc) */
+ .uleb128 0x7 /* (DW_FORM_data8) */
+ .uleb128 0x40 /* (DW_AT_frame_base) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .uleb128 0x7a /* (DW_AT_call_all_calls) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .uleb128 0x1 /* (DW_AT_sibling) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .uleb128 0x11 /* (abbrev code) */
+ .uleb128 0x34 /* (TAG: DW_TAG_variable) */
+ .byte 0 /* DW_children_no */
+ .uleb128 0x31 /* (DW_AT_abstract_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x1c /* (DW_AT_const_value) */
+ .uleb128 0xb /* (DW_FORM_data1) */
+ .byte 0
+ .byte 0
+ .uleb128 0x12 /* (abbrev code) */
+ .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x31 /* (DW_AT_abstract_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .uleb128 0x11 /* (DW_AT_low_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x12 /* (DW_AT_high_pc) */
+ .uleb128 0x7 /* (DW_FORM_data8) */
+ .uleb128 0x40 /* (DW_AT_frame_base) */
+ .uleb128 0x18 /* (DW_FORM_exprloc) */
+ .uleb128 0x7a /* (DW_AT_call_all_calls) */
+ .uleb128 0x19 /* (DW_FORM_flag_present) */
+ .byte 0
+ .byte 0
+ .uleb128 0x13 /* (abbrev code) */
+ .uleb128 0x48 /* (TAG: DW_TAG_call_site) */
+ .byte 0x1 /* DW_children_yes */
+ .uleb128 0x7d /* (DW_AT_call_return_pc) */
+ .uleb128 0x1 /* (DW_FORM_addr) */
+ .uleb128 0x7f /* (DW_AT_call_origin) */
+ .uleb128 0x13 /* (DW_FORM_ref4) */
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .long 0x3c /* Length of Address Ranges Info */
+ .value 0x2 /* DWARF Version */
+ .long .Ldebug_info0 /* Offset of Compilation Unit Info */
+ .byte 0x8 /* Size of Address */
+ .byte 0 /* Size of Segment Descriptor */
+ .value 0 /* Pad to 16 byte boundary */
+ .value 0
+ .quad .Ltext0 /* Address */
+ .quad .Letext0-.Ltext0 /* Length */
+ .quad .LFB2 /* Address */
+ .quad .LFE2-.LFB2 /* Length */
+ .quad 0
+ .quad 0
+ .section .debug_rnglists,"",@progbits
+.Ldebug_ranges0:
+ .long .Ldebug_ranges3-.Ldebug_ranges2 /* Length of Range Lists */
+.Ldebug_ranges2:
+ .value 0x5 /* DWARF Version */
+ .byte 0x8 /* Address Size */
+ .byte 0 /* Segment Size */
+ .long 0 /* Offset Entry Count */
+.LLRL0:
+ .byte 0x7 /* DW_RLE_start_length (*.LLRL0) */
+ .quad .Ltext0 /* Range begin address (*.LLRL0) */
+ .uleb128 .Letext0-.Ltext0 /* Range length (*.LLRL0) */
+ .byte 0x7 /* DW_RLE_start_length (*.LLRL0) */
+ .quad .LFB2 /* Range begin address (*.LLRL0) */
+ .uleb128 .LFE2-.LFB2 /* Range length (*.LLRL0) */
+ .byte 0 /* DW_RLE_end_of_list (*.LLRL0) */
+.Ldebug_ranges3:
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .long .LELT0-.LSLT0 /* Length of Source Line Info */
+.LSLT0:
+ .value 0x5 /* DWARF Version */
+ .byte 0x8 /* Address Size */
+ .byte 0 /* Segment Size */
+ .long .LELTP0-.LASLTP0 /* Prolog Length */
+.LASLTP0:
+ .byte 0x1 /* Minimum Instruction Length */
+ .byte 0x1 /* Maximum Operations Per Instruction */
+ .byte 0x1 /* Default is_stmt_start flag */
+ .byte 0xf6 /* Line Base Value (Special Opcodes) */
+ .byte 0xf2 /* Line Range Value (Special Opcodes) */
+ .byte 0xd /* Special Opcode Base */
+ .byte 0 /* opcode: 0x1 has 0 args */
+ .byte 0x1 /* opcode: 0x2 has 1 args */
+ .byte 0x1 /* opcode: 0x3 has 1 args */
+ .byte 0x1 /* opcode: 0x4 has 1 args */
+ .byte 0x1 /* opcode: 0x5 has 1 args */
+ .byte 0 /* opcode: 0x6 has 0 args */
+ .byte 0 /* opcode: 0x7 has 0 args */
+ .byte 0 /* opcode: 0x8 has 0 args */
+ .byte 0x1 /* opcode: 0x9 has 1 args */
+ .byte 0 /* opcode: 0xa has 0 args */
+ .byte 0 /* opcode: 0xb has 0 args */
+ .byte 0x1 /* opcode: 0xc has 1 args */
+ .byte 0x1 /* Directory entry format count */
+ .uleb128 0x1 /* DW_LNCT_path */
+ .uleb128 0x1f /* DW_FORM_line_strp */
+ .uleb128 0x2 /* Directories count */
+ .long .LASF1 /* Directory Entry: 0: "" */
+ .long .LASF4 /* Directory Entry: 0: "gdb.arch" */
+ .byte 0x2 /* File name entry format count */
+ .uleb128 0x1 /* DW_LNCT_path */
+ .uleb128 0x1f /* DW_FORM_line_strp */
+ .uleb128 0x2 /* DW_LNCT_directory_index */
+ .uleb128 0xb /* DW_FORM_data1 */
+ .uleb128 0x2 /* File names count */
+ .long .LASF0 /* File Entry: 0: "gdb.arch/amd64-entry-value-param-dwarf5.c" */
+ .byte 0
+ .long .LASF5 /* File Entry: 0: "amd64-entry-value-param-dwarf5.c" */
+ .byte 0x1
+.LELTP0:
+ .byte 0 /* set address *.LM8 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM8
+ .byte 0x3c /* line 38 */
+ .byte 0 /* set address *.LM9 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM9
+ .byte 0x18 /* line 39 */
+ .byte 0 /* set address *.LFE2 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LFE2
+ .byte 0 /* end sequence */
+ .uleb128 0x1
+ .byte 0x1
+ .byte 0 /* set address *.LM1 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM1
+ .byte 0x2b /* line 21 */
+ .byte 0 /* set address *.LM2 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM2
+ .byte 0x1c /* line 26 */
+ .byte 0 /* set address *.LM3 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM3
+ .byte 0x18 /* line 27 */
+ .byte 0 /* set address *.LM4 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM4
+ .byte 0x18 /* line 28 */
+ .byte 0 /* set address *.LM5 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM5
+ .byte 0x1a /* line 31 */
+ .byte 0 /* set address *.LM6 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM6
+ .byte 0x19 /* line 33 */
+ .byte 0 /* set address *.LM7 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .LM7
+ .byte 0x18 /* line 34 */
+ .byte 0 /* set address *.Letext0 */
+ .uleb128 0x9
+ .byte 0x2
+ .quad .Letext0
+ .byte 0 /* end sequence */
+ .uleb128 0x1
+ .byte 0x1
+.LELT0:
+ .section .debug_str,"MS",@progbits,1
+.LASF2:
+ .string "GNU C11 7.0.1 20170218 (experimental) -mtune=generic -march=x86-64 -gdwarf-5 -O2"
+.LASF3:
+ .string "main"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF5:
+ .string "amd64-entry-value-param-dwarf5.c"
+.LASF0:
+ .string "gdb.arch/amd64-entry-value-param-dwarf5.c"
+.LASF1:
+ .string ""
+.LASF4:
+ .string "gdb.arch"
+ .ident "GCC: (GNU) 7.0.1 20170218 (experimental)"
+ .section .note.GNU-stack,"",@progbits
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
new file mode 100644
index 0000000..d677516
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
@@ -0,0 +1,40 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2012-2017 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+volatile int vv;
+
+static __attribute__((noinline)) int
+foo (int x, int y, int z)
+{
+ int a = x * 2;
+ int b = y * 2;
+ int c = z * 2;
+ vv++; /* break-here */
+ return x + z;
+}
+
+static __attribute__((noinline)) int
+bar (int x)
+{
+ return foo (x, 2, 3) + foo (x, 4, 3) + foo (x + 6, x, 3) + x;
+}
+
+int
+main (void)
+{
+ return bar (10);
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
new file mode 100644
index 0000000..0357ff4
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
@@ -0,0 +1,49 @@
+# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile .S .c
+set opts {}
+
+if [info exists COMPILE] {
+ # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param-dwarf5.exp COMPILE=1"
+ set srcfile ${srcfile2}
+ lappend opts optimize=-O2 additional_flags=-gdwarf-5
+} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+ verbose "Skipping amd64-entry-value-param-dwarf5."
+ return
+}
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
+ return -1
+}
+
+if ![runto_main] {
+ return -1
+}
+
+set srcfile $srcfile2
+gdb_breakpoint [gdb_get_line_number "break-here"]
+
+gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+gdb_test "p y" " = 2"
+gdb_test "p b" " = 4"
+
+gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+gdb_test "p y" " = 4"
+gdb_test "p b" " = 8"
+
+gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+gdb_test "p y" " = 10"
+gdb_test "p b" " = 20"
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value.exp b/gdb/testsuite/gdb.arch/amd64-entry-value.exp
index ee6bff5..d041b37 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value.exp
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value.exp
@@ -159,7 +159,7 @@ gdb_test_no_output "set print entry-values default" "entry_invalid: set print en
gdb_test "frame" {\(inv=<optimized out>\).*} "entry_invalid: frame: default"
-# Test @entry values for DW_AT_GNU_call_site_data_value parameters.
+# Test @entry values for DW_AT_call_data_value parameters.
gdb_continue_to_breakpoint "entry_reference: reference"
@@ -188,7 +188,7 @@ gdb_test "p regparam@entry" " = \\(int &\\) @$addr: 1" "entry_reference: p regpa
gdb_test "p &regparam@entry" " = \\(int \\*\\) $addr" "entry_reference: p &regparam@entry"
gdb_test "p regcopy" " = 1" "entry_reference: p regcopy"
gdb_test "p nodataparam" " = \\(int &\\) @0x\[0-9a-f\]+: 22" "entry_reference: p nodataparam"
-gdb_test "p nodataparam@entry" "Cannot resolve DW_AT_GNU_call_site_data_value" "entry_reference: p nodataparam@entry"
+gdb_test "p nodataparam@entry" "Cannot resolve DW_AT_call_data_value" "entry_reference: p nodataparam@entry"
# Test virtual tail call frames.
@@ -249,5 +249,5 @@ gdb_test "bt" "^bt\r\n#0 +d \\(i=<optimized out>, j=<optimized out>\\)\[^\r\n\]*
"self: bt"
gdb_test_no_output "set debug entry-values 1"
-gdb_test "bt" "DW_OP_GNU_entry_value resolving has found function \"self\\(int\\)\" at 0x\[0-9a-f\]+ can call itself via tail calls\r\n.*" \
+gdb_test "bt" "DW_OP_entry_value resolving has found function \"self\\(int\\)\" at 0x\[0-9a-f\]+ can call itself via tail calls\r\n.*" \
"self: bt debug entry-values"