@@ -279,7 +279,8 @@ arm_target_thumb_only (int argc, const char **argv)
if (arch)
{
const arch_option *arch_opt
- = arm_parse_arch_option_name (all_architectures, "-march", arch);
+ = arm_parse_arch_option_name (all_architectures, "-march", arch,
+ false);
if (arch_opt && !check_isa_bits_for (arch_opt->common.isa_bits,
isa_bit_notm))
@@ -288,7 +289,7 @@ arm_target_thumb_only (int argc, const char **argv)
else if (cpu)
{
const cpu_option *cpu_opt
- = arm_parse_cpu_option_name (all_cores, "-mcpu", cpu);
+ = arm_parse_cpu_option_name (all_cores, "-mcpu", cpu, false);
if (cpu_opt && !check_isa_bits_for (cpu_opt->common.isa_bits,
isa_bit_notm))
@@ -329,10 +330,11 @@ arm_print_hint_for_cpu_option (const char *target,
/* Parse the base component of a CPU selection in LIST. Return a
pointer to the entry in the architecture table. OPTNAME is the
name of the option we are parsing and can be used if a diagnostic
- is needed. */
+ is needed. If COMPLAIN is true (the default) emit error
+ messages and hints on invalid input. */
const cpu_option *
arm_parse_cpu_option_name (const cpu_option *list, const char *optname,
- const char *target)
+ const char *target, bool complain)
{
const cpu_option *entry;
const char *end = strchr (target, '+');
@@ -345,8 +347,11 @@ arm_parse_cpu_option_name (const cpu_option *list, const char *optname,
return entry;
}
- error_at (input_location, "unrecognized %s target: %s", optname, target);
- arm_print_hint_for_cpu_option (target, list);
+ if (complain)
+ {
+ error_at (input_location, "unrecognized %s target: %s", optname, target);
+ arm_print_hint_for_cpu_option (target, list);
+ }
return NULL;
}
@@ -379,10 +384,11 @@ arm_print_hint_for_arch_option (const char *target,
/* Parse the base component of a CPU or architecture selection in
LIST. Return a pointer to the entry in the architecture table.
OPTNAME is the name of the option we are parsing and can be used if
- a diagnostic is needed. */
+ a diagnostic is needed. If COMPLAIN is true (the default) emit error
+ messages and hints on invalid input. */
const arch_option *
arm_parse_arch_option_name (const arch_option *list, const char *optname,
- const char *target)
+ const char *target, bool complain)
{
const arch_option *entry;
const char *end = strchr (target, '+');
@@ -395,8 +401,11 @@ arm_parse_arch_option_name (const arch_option *list, const char *optname,
return entry;
}
- error_at (input_location, "unrecognized %s target: %s", optname, target);
- arm_print_hint_for_arch_option (target, list);
+ if (complain)
+ {
+ error_at (input_location, "unrecognized %s target: %s", optname, target);
+ arm_print_hint_for_arch_option (target, list);
+ }
return NULL;
}
@@ -542,9 +542,9 @@ extern const arch_option all_architectures[];
extern const cpu_option all_cores[];
const cpu_option *arm_parse_cpu_option_name (const cpu_option *, const char *,
- const char *);
+ const char *, bool = true);
const arch_option *arm_parse_arch_option_name (const arch_option *,
- const char *, const char *);
+ const char *, const char *, bool = true);
void arm_parse_option_features (sbitmap, const cpu_arch_option *,
const char *);