https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64802
Bug ID: 64802
Summary: [ARM] Selecting an -mcpu or -march that supports only
one of ARM/Thumb should default to the ISA that *is*
supported
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: minor
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target: arm*
Currently for an arm-none-eabi-gcc configured with --with-fpu=neon-fp-armv8
--with-arch=armv8-a (or any configuration I suspect)
if I try to compile something with -mcpu=cortex-m3 I get an error:
pc.c:1:0: error: target CPU does not support ARM mode
int main(void)
^
It only works if I add an -mthumb to the command line.
I think this is unhelpful. If a given -march or -mcpu doesn't support ARM mode
then the compilation should default to Thumb code generation that the
architecture supports unless the user explicitly specifies -marm (in which case
we should error out).
This would need some reorg in the way TARGET_ARM and TARGET_THUMB are defined
through arm.opt and perhaps arm_option_override