646f441776
On PPC64, 'func' and 'main' are function descriptors and don't point to the actual code. Thus the usage of these symbols in the DWARF assembler source was broken. The patch introduces new labels func_start and func_end for this purpose.
76 lines
1.8 KiB
Text
76 lines
1.8 KiB
Text
# Copyright 2011-2014 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/>.
|
|
|
|
# Verify DW_AT_variable_parameter does not modify the data structures meaning
|
|
# for GDB, as being used by iFort.
|
|
load_lib dwarf.exp
|
|
|
|
# This test can only be run on targets which support DWARF-2 and use gas.
|
|
if {![dwarf2_support]} {
|
|
return 0
|
|
}
|
|
|
|
standard_testfile .c dw2-ifort-parameter-dw.S
|
|
|
|
# Make some DWARF for the test.
|
|
set asm_file [standard_output_file $srcfile2]
|
|
Dwarf::assemble $asm_file {
|
|
declare_labels int_label
|
|
|
|
extern func_start func_end ptr
|
|
|
|
cu {} {
|
|
compile_unit {
|
|
{name file1.txt}
|
|
{language @DW_LANG_C}
|
|
{low_pc func_start addr}
|
|
{high_pc func_end addr}
|
|
} {
|
|
int_label: base_type {
|
|
{name int}
|
|
{byte_size 4 sdata}
|
|
{encoding @DW_ATE_signed}
|
|
}
|
|
|
|
subprogram {
|
|
{external 1 flag}
|
|
{name func}
|
|
{low_pc func_start addr}
|
|
{high_pc func_end addr}
|
|
} {
|
|
formal_parameter {
|
|
{name param}
|
|
{variable_parameter 1 flag}
|
|
{type :$int_label}
|
|
{location {
|
|
addr ptr
|
|
deref
|
|
} SPECIAL_expr}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if { [prepare_for_testing ${testfile}.exp ${testfile} \
|
|
[list $srcfile $asm_file] {nodebug}] } {
|
|
return -1
|
|
}
|
|
|
|
if ![runto func] {
|
|
return -1
|
|
}
|
|
|
|
gdb_test "p/x param" " = 0xdeadf00d"
|