Fix the gdb.ada/inline-section-gc.exp test
authorCarl Love <cel@linux.ibm.com>
Mon, 13 Nov 2023 19:14:08 +0000 (14:14 -0500)
committerCarl Love <cel@linux.ibm.com>
Mon, 13 Nov 2023 19:14:08 +0000 (14:14 -0500)
commit284c40cb7dc72756e60b8754f719ba56370350a4
treec1cf3c3a85bb9f4ea275d642fb17cce73296ec46
parentb0dfd7427be1c022581ea4ff33713e9922294c34
Fix the gdb.ada/inline-section-gc.exp test

The original intention of the test appears to be checking to make sure
setting a breakpoint in an inlined function didn't set multiple
breakpoints where one of them was at address 0.

The gdb.ada/inline-section-gc.exp test may pass or fail depending on the
version of gnat.  Per the discussion on IRC, the ada inlining appears to
have some target dependencies.  In this test there are two functions,
callee and caller. Function calee is inlined into caller.  The test sets
a breakpoint in function callee.  The reported location where the
breakpoint is set may be at the requested location in callee or the
location in caller after callee has been inlined.  The test needs to
accept either location as correct provided the breakpoint address is not
zero.

This patch checks to see if the reported breakpoint is in function callee
or function caller and fails if the breakpoint address is 0x0.  The line
number where the breakpoint is set will match the requested line if the
breakpoint location is reported is callee.adb.  If the breakpoint is
reported in caller.adb, the line number in caller is the breakpoint
location in callee where it is inlined into caller.

This patch fixes the single regression failure for the test on PowerPC.
It does not introduce any failures on X86-64.
gdb/testsuite/gdb.ada/inline-section-gc.exp
gdb/testsuite/gdb.ada/inline-section-gc/caller.adb