Hi Iain, Thanks for dealing with this :-)
On Thu, 23 Nov 2023 at 10:58, Iain Sandoe <iains....@gmail.com> wrote: > > Tested on a cross to armv8l-unknown-linux-gnueabihf where the failing > testcase is restored, and on aarch64-linux-gnu where no change is seen > on the aarch64.exp suite. Also tested on arm64 Darwin for aarch64.exp > and aarch64-darwin.exp. > > OK for trunk, or some alternative would be better? > Iain > > --- 8< --- > > The change applied in r14-5760-g2a46e0e7e20 changed the behaviour of > functions with assembly like: > > bar: > __acle_se_bar: > > Where both bar and __acle_se_bar are globals refering to the same > function body. The old behaviour overrides 'bar' with '__acle_se_bar' > and the scan tests for that label. > > The change here re-allows the override. > > Case like this are not legal Mach-O (where two global symbols cannot > have the same address in the assembler output). However, given the > constraints on the Mach-O scanning, it does not seem that it is > necessary to skip the change (any incorrect case should be easily > evident in the assembler). > > gcc/testsuite/ChangeLog: > > * lib/scanasm.exp: Allow multiple function start symbols, > taking the last as the function name. > > Signed-off-by: Iain Sandoe <i...@sandoe.co.uk> > --- > gcc/testsuite/lib/scanasm.exp | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp > index 85ee54ff9a8..7ec3cfce02b 100644 > --- a/gcc/testsuite/lib/scanasm.exp > +++ b/gcc/testsuite/lib/scanasm.exp > @@ -877,7 +877,15 @@ proc parse_function_bodies { config filename result } { > set in_function 0 > } > } elseif { $in_function } { > - if { [regexp $up_config(end) $line] } { > + # We allow multiple function start labels, taking the last one > seen > + # as the function name. > + if { [regexp [lindex $up_config(start) 0] \ > + $line dummy maybe_function_name] } { > + verbose "parse_function_bodies: overriding $function_name > with $maybe_function_name" > + set function_name $maybe_function_name > + set in_function 1 this is not necessary, since we are already inside if ($in_function) ? > + set function_body "" > + } elseif { [regexp $up_config(end) $line] } { > verbose "parse_function_bodies: > $function_name:\n$function_body" > set up_result($function_name) $function_body > set in_function 0 > -- > 2.39.2 (Apple Git-143) > Thanks, Christophe