gcc/libgcc
Joel Hutton f0efd92502 [Arm][CMSE]Add warn_unused_return attribute to cmse functions
At present it is possible to call the CMSE functions for checking
addresses (such as cmse_check_address_range) and  forget to check/use
the return value. This patch makes the interfaces more robust against
programmer error by marking these functions with the warn_unused_result
attribute. With this set, any use of these functions that does not use
the result will produce a warning.

This produces a warning on default warn levels when the result of the
cmse functions is not used.

For the following function:
void foo()
{
     int *data;
     cmse_check_address_range((int*)data, 0, 0);
}
The following warning is emitted:
warning: ignoring return value of 'cmse_check_address_range' declared
with attribute 'warn_unused_result' [-Wunused-result]
     6 |  cmse_check_address_range((int*)data, 0, 0);
        |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

gcc/ChangeLog:

2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>

         * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
warn_unused_result attribute.
         (cmse_check_address_range): Add warn_unused_result attribute.

libgcc/ChangeLog:

2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>

         * config/arm/cmse.c (cmse_check_address_range): Add
warn_unused_result attribute.

2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>

         * gcc.target/arm/cmse/cmse-17.c: New test.

From-SVN: r273924
2019-07-31 08:56:35 +00:00
..
config [Arm][CMSE]Add warn_unused_return attribute to cmse functions 2019-07-31 08:56:35 +00:00
soft-fp soft-fp: Update soft-fp from glibc 2019-05-17 07:37:39 -07:00
ChangeLog [Arm][CMSE]Add warn_unused_return attribute to cmse functions 2019-07-31 08:56:35 +00:00
config.host [Darwin] Revert one hunk from r273016 (TLC for older Darwin versions). 2019-07-04 18:28:59 +00:00
config.in
configure Add --disable-tm-clone-registry libgcc configure option. 2019-06-27 16:41:03 -07:00
configure.ac Add --disable-tm-clone-registry libgcc configure option. 2019-06-27 16:41:03 -07:00
crtstuff.c
dfp-bit.c
dfp-bit.h
divmod.c
empty.mk
emutls.c
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c
find-symver.awk
fixed-bit.c
fixed-bit.h
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c
fp-bit.h
gbl-ctors.h
gcov.h
gen-fixed.sh
generic-morestack-thread.c PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
generic-morestack.c PR middle-end/71924 - missing -Wreturn-local-addr returning alloca result 2019-07-08 22:15:42 -06:00
generic-morestack.h
gstdint.h
gthr-posix.h PR c/88546 - Copy attribute unusable for weakrefs 2019-01-04 17:57:30 -07:00
gthr-single.h
gthr.h
libgcc2.c extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcc2.h extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcc-std.ver.in
libgcov-driver-system.c Remove quite obvious dead assignments. 2019-06-27 10:25:21 +00:00
libgcov-driver.c Remove indirect call top N counter type. 2019-06-07 06:41:58 +00:00
libgcov-interface.c
libgcov-merge.c Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
libgcov-profiler.c Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
libgcov-util.c Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
libgcov.h Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
Makefile.in Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh
mkmap-flat.awk
mkmap-symver.awk PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
offloadstuff.c
shared-object.mk
siditi-object.mk
static-object.mk
sync.c
udivhi3.c
udivmod.c
udivmodhi4.c
udivmodsi4.c
unwind-arm-common.inc
unwind-c.c re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
unwind-compat.c
unwind-compat.h
unwind-dw2-fde-compat.c
unwind-dw2-fde-dip.c
unwind-dw2-fde.c [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
unwind-dw2-fde.h
unwind-dw2.c [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
unwind-dw2.h
unwind-generic.h
unwind-pe.h
unwind-seh.c
unwind-sjlj.c
unwind.inc
vtv_end_preinit.c
vtv_end.c
vtv_start_preinit.c
vtv_start.c