]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/53633 (__attribute__((naked)) should disable -Wreturn-type)
authorSandra Loosemore <sandra@codesourcery.com>
Wed, 25 Jul 2012 18:08:06 +0000 (14:08 -0400)
committerSandra Loosemore <sandra@gcc.gnu.org>
Wed, 25 Jul 2012 18:08:06 +0000 (14:08 -0400)
commitd45eae79db3e8c41ac1f307b267179498a636e0b
treef42803034e2d99c0fb7f313962516557837e0a57
parent62732c3044c767f4efcff0cd398c9e65ba437bda
re PR target/53633 (__attribute__((naked)) should disable -Wreturn-type)

2012-07-25  Sandra Loosemore  <sandra@codesourcery.com>
    Paul Brook  <paul@codesourcery.com>

PR target/53633

gcc/
* target.def (warn_func_return): New hook.
* doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
* doc/tm.texi: Regenerate.
* doc/sourcebuild.texi (Effective-Target Keywords): Document
naked_functions.
* ipa-pure-const.c (warn_function_noreturn): Check
targetm.warn_func_return.
* tree-cfg.c (execute_warn_function_return): Likewise.
* config/spu/spu.c (spu_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/rx/rx.c (rx_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/avr/avr.c (avr_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/arm/arm.c (arm_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
* config/mcore/mcore.c (mcore_warn_func_return): New.
(TARGET_WARN_FUNC_RETURN): Define.
(saved_warn_return_type, saved_warn_return_type_count): Remove.
(mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.

gcc/cp/
* decl.c (finish_function): Check targetm.warn_func_return.

gcc/testsuite/
* lib/target-suports.exp (check_effective_target_naked_functions):
New.
* c-c++-common/pr53633.c: New test.

Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r189860
17 files changed:
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/avr/avr.c
gcc/config/mcore/mcore.c
gcc/config/rx/rx.c
gcc/config/spu/spu.c
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/doc/sourcebuild.texi
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/ipa-pure-const.c
gcc/target.def
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/pr53633.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp
gcc/tree-cfg.c