alahay01 at gcc dot gnu.org
2018-03-09 09:50:29 UTC
https://sourceware.org/bugzilla/show_bug.cgi?id=22943
Bug ID: 22943
Summary: [aarch64] Failures in
gdb.base/infcall-nested-structs.exp
Product: gdb
Version: HEAD
Status: NEW
Severity: normal
Priority: P2
Component: gdb
Assignee: unassigned at sourceware dot org
Reporter: alahay01 at gcc dot gnu.org
Target Milestone: ---
Commit dbbb1059e62e9fed10b429c030f76f782cbc1fc4 (gdb: Initial baremetal riscv
support) added a new test set gdb.base/infcall-nested-structs.exp
When run these test expose existing issues on aarch64:
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct01
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct02
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct03
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct04
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct01
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct02
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct03
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct04
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct01
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct02
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct03
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct04
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct01 (ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct02 (ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct03 (ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct04 (ref_val_struct04)
# of expected passes 1064
# of unexpected failures 36
Looks like aarch64 is not recursively parsing structures when making an
inferior call.
With the following code, making a "call print2(s)" in gdb, gdb should put the
arguments into float registers:
struct s2
{
struct
{
float f1;
} s2;
};
static void
print2 (struct s2 s)
{}
See the TYPE_CODE_STRUCT section in is_hfa_or_hva() in aarch64-tdep.c
Bug ID: 22943
Summary: [aarch64] Failures in
gdb.base/infcall-nested-structs.exp
Product: gdb
Version: HEAD
Status: NEW
Severity: normal
Priority: P2
Component: gdb
Assignee: unassigned at sourceware dot org
Reporter: alahay01 at gcc dot gnu.org
Target Milestone: ---
Commit dbbb1059e62e9fed10b429c030f76f782cbc1fc4 (gdb: Initial baremetal riscv
support) added a new test set gdb.base/infcall-nested-structs.exp
When run these test expose existing issues on aarch64:
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct01
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct02
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct03
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tfc: check return value
struct04
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct01
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct02
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct03
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tdc: check return value
struct04
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tldc: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct01
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct02
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct03
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tf-tf: check return value
struct04
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct01
(ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct02
(ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct03
(ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-td-td: p/d check_arg_struct04
(ref_val_struct04)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct01 (ref_val_struct01)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct02 (ref_val_struct02)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct03 (ref_val_struct03)
FAIL: gdb.base/infcall-nested-structs.exp: types-tld-tld: p/d
check_arg_struct04 (ref_val_struct04)
# of expected passes 1064
# of unexpected failures 36
Looks like aarch64 is not recursively parsing structures when making an
inferior call.
With the following code, making a "call print2(s)" in gdb, gdb should put the
arguments into float registers:
struct s2
{
struct
{
float f1;
} s2;
};
static void
print2 (struct s2 s)
{}
See the TYPE_CODE_STRUCT section in is_hfa_or_hva() in aarch64-tdep.c
--
You are receiving this mail because:
You are on the CC list for the bug.
You are receiving this mail because:
You are on the CC list for the bug.