diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2012-05-09 16:28:53 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2012-05-09 16:28:53 +0000 |
commit | eac188c5bcb1ed4f3fd61de2de2590dece32be2b (patch) | |
tree | 14aca0a603bf73054927ff0215465c4416a351f4 /gcc/config/avr/avr.h | |
parent | 5b0d38e4e3934555341427ccd7217be0738f89b2 (diff) | |
download | gcc-eac188c5bcb1ed4f3fd61de2de2590dece32be2b.zip gcc-eac188c5bcb1ed4f3fd61de2de2590dece32be2b.tar.gz gcc-eac188c5bcb1ed4f3fd61de2de2590dece32be2b.tar.bz2 |
re PR target/53256 ([avr] Attribute 'interrupt' shall override attribute 'signal')
PR target/53256
* config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
* config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
* config/avr/avr.h (struct machine_function): Add attributes_checked_p.
* config/avr/avr.c (avr_asm_declare_function_name): Remove.
(expand_prologue): Move initialization of cfun->machine->is_naked,
is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
(avr_set_current_function): ...this new static function.
(TARGET_SET_CURRENT_FUNCTION): New define.
(avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
checking attributes of current_function_decl.
(avr_regs_to_save): Ditto.
(signal_function_p): Rename to avr_signal_function_p.
(interrupt_function_p): Rename to avr_interrupt_function_p.
* doc/extend.texi (Function Attributes): Better explanation of
'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
alphabetical order.
From-SVN: r187342
Diffstat (limited to 'gcc/config/avr/avr.h')
-rw-r--r-- | gcc/config/avr/avr.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index ef98a91..dfbd071 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -707,6 +707,10 @@ struct GTY(()) machine_function /* 'true' if a callee might be tail called */ int sibcall_fails; + + /* 'true' if the above is_foo predicates are sanity-checked to avoid + multiple diagnose for the same function. */ + int attributes_checked_p; }; /* AVR does not round pushes, but the existance of this macro is |