Commit 593fca4b by Georg-Johann Lay Committed by Denis Chertykov

re PR target/45261 (Doesn't indicate failure status when it doesn't support (attiny2313A))

2011-02-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/45261
	* config/avr/avr.c (avr_option_override): Use error on bad options.
	(avr_help): New function.
	(TARGET_HELP): Define.

From-SVN: r170536
parent 113a53c1
2011-02-23 Georg-Johann Lay <avr@gjlay.de>
PR target/45261
* config/avr/avr.c (avr_option_override): Use error on bad options.
(avr_help): New function.
(TARGET_HELP): Define.
2011-02-22 Georg-Johann Lay <avr@gjlay.de> 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
PR target/42240 PR target/42240
......
...@@ -97,6 +97,7 @@ static rtx avr_function_arg (CUMULATIVE_ARGS *, enum machine_mode, ...@@ -97,6 +97,7 @@ static rtx avr_function_arg (CUMULATIVE_ARGS *, enum machine_mode,
const_tree, bool); const_tree, bool);
static void avr_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, static void avr_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
const_tree, bool); const_tree, bool);
static void avr_help (void);
/* Allocate registers from r25 to r8 for parameters for function calls. */ /* Allocate registers from r25 to r8 for parameters for function calls. */
#define FIRST_CUM_REG 26 #define FIRST_CUM_REG 26
...@@ -221,6 +222,9 @@ static const struct default_options avr_option_optimization_table[] = ...@@ -221,6 +222,9 @@ static const struct default_options avr_option_optimization_table[] =
#undef TARGET_CANNOT_MODIFY_JUMPS_P #undef TARGET_CANNOT_MODIFY_JUMPS_P
#define TARGET_CANNOT_MODIFY_JUMPS_P avr_cannot_modify_jumps_p #define TARGET_CANNOT_MODIFY_JUMPS_P avr_cannot_modify_jumps_p
#undef TARGET_HELP
#define TARGET_HELP avr_help
struct gcc_target targetm = TARGET_INITIALIZER; struct gcc_target targetm = TARGET_INITIALIZER;
static void static void
...@@ -236,10 +240,8 @@ avr_option_override (void) ...@@ -236,10 +240,8 @@ avr_option_override (void)
if (!t->name) if (!t->name)
{ {
fprintf (stderr, "unknown MCU '%s' specified\nKnown MCU names:\n", error ("unrecognized argument to -mmcu= option: %qs", avr_mcu_name);
avr_mcu_name); inform (input_location, "See --target-help for supported MCUs");
for (t = avr_mcu_types; t->name; t++)
fprintf (stderr," %s\n", t->name);
} }
avr_current_device = t; avr_current_device = t;
...@@ -252,6 +254,42 @@ avr_option_override (void) ...@@ -252,6 +254,42 @@ avr_option_override (void)
init_machine_status = avr_init_machine_status; init_machine_status = avr_init_machine_status;
} }
/* Implement TARGET_HELP */
/* Report extra information for --target-help */
static void
avr_help (void)
{
const struct mcu_type_s *t;
const char * const indent = " ";
int len;
/* Give a list of MCUs that are accepted by -mmcu=* .
Note that MCUs supported by the compiler might differ from
MCUs supported by binutils. */
len = strlen (indent);
printf ("Known MCU names:\n%s", indent);
/* Print a blank-separated list of all supported MCUs */
for (t = avr_mcu_types; t->name; t++)
{
printf ("%s ", t->name);
len += 1 + strlen (t->name);
/* Break long lines */
if (len > 66 && (t+1)->name)
{
printf ("\n%s", indent);
len = strlen (indent);
}
}
printf ("\n\n");
}
/* return register class from register number. */ /* return register class from register number. */
static const enum reg_class reg_class_tab[]={ static const enum reg_class reg_class_tab[]={
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment