https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116445

--- Comment #6 from Torbjorn SVENSSON <azoff at gcc dot gnu.org> ---
(In reply to Christophe Lyon from comment #5)
> The test has:
> /* { dg-require-effective-target arm_thumb2_ok_no_arm_v8_1_lob } */
> since commit g:d2ed233cb940aa3eecc163d98b47979dd81dbc0a
> with this comment: "Do not run when generating low loop overhead."
> but that effective-target will only check if low-overhead-loops can / cannot
> be executed, which is not adequate for a 'dg-do compile' test...
> 
> It looks like that commit tried to disable the test for a target with
> low-overhead-loops? I don't know if the reason was that the test was failing
> as reported by Torbjorn.
> 
> Maybe a simple fix would be to switch back to arm_thumb2_ok, and use -O2
> instead of just -O?
> 
> Side note: Torbjorn, why does arm_v8_1_lob_ok fail on your target? I'd
> thought it should pass, thus making arm_thumb2_ok_no_arm_v8_1_lob fail and
> disable the test?

The reason why arm_thumb2_ok_no_arm_v8_1_lob is reporting "success" is that
check_effective_target_arm_v8_1_lob_ok checks with -march=armv8.1-m.main while
my test was ran with -mcpu=cortex-m55 and then I get this excess error:
cc1: warning: switch '-mcpu=cortex-m55' conflicts with switch
'-march=armv8.1-m.main'

so, this means that the test fails, but for the wrong reason and then the
check_effective_target_arm_v8_1_lob_ok  returns success as it is expecting a
failure.

The problem with arm_thumb2_ok_no_arm_v8_1_lob is also just for GCC14 since
GCC15 uses the -mcpu=unset feature.

Reply via email to