Commit e3e28585 by Georg-Johann Lay Committed by Georg-Johann Lay

re PR target/45099 ([avr] Warning could be issued for use of register variables that will fail.)

	PR target/45099
	* config/avr/avr.c (avr_function_arg_advance): Change error to
	warning if a fixed register is needed as function argument.

From-SVN: r179040
parent 88cb6dd2
2011-09-21 Georg-Johann Lay <avr@gjlay.de> 2011-09-21 Georg-Johann Lay <avr@gjlay.de>
PR target/45099
* config/avr/avr.c (avr_function_arg_advance): Change error to
warning if a fixed register is needed as function argument.
2011-09-21 Georg-Johann Lay <avr@gjlay.de>
PR target/50449 PR target/50449
PR target/50465 PR target/50465
* config/avr/avr.md (adjust_len): New insn attribute. * config/avr/avr.md (adjust_len): New insn attribute.
...@@ -1810,7 +1810,7 @@ avr_function_arg_advance (cumulative_args_t cum_v, enum machine_mode mode, ...@@ -1810,7 +1810,7 @@ avr_function_arg_advance (cumulative_args_t cum_v, enum machine_mode mode,
/* Test if all registers needed by the ABI are actually available. If the /* Test if all registers needed by the ABI are actually available. If the
user has fixed a GPR needed to pass an argument, an (implicit) function user has fixed a GPR needed to pass an argument, an (implicit) function
call would clobber that fixed register. See PR45099 for an example. */ call will clobber that fixed register. See PR45099 for an example. */
if (cum->regno >= 8 if (cum->regno >= 8
&& cum->nregs >= 0) && cum->nregs >= 0)
...@@ -1819,8 +1819,8 @@ avr_function_arg_advance (cumulative_args_t cum_v, enum machine_mode mode, ...@@ -1819,8 +1819,8 @@ avr_function_arg_advance (cumulative_args_t cum_v, enum machine_mode mode,
for (regno = cum->regno; regno < cum->regno + bytes; regno++) for (regno = cum->regno; regno < cum->regno + bytes; regno++)
if (fixed_regs[regno]) if (fixed_regs[regno])
error ("Register %s is needed to pass a parameter but is fixed", warning (0, "fixed register %s used to pass parameter to function",
reg_names[regno]); reg_names[regno]);
} }
if (cum->nregs <= 0) if (cum->nregs <= 0)
......
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