diff options
author | Martin Liska <mliska@suse.cz> | 2017-12-05 10:23:25 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-12-05 10:23:25 +0100 |
commit | 05abad4cca62d3725175ccf628b74638fe43e043 (patch) | |
tree | a28c9b3ac2e4db36105499565bc890964b061fbb /gcc/ipa-inline.c | |
parent | 81e4859a97804dfe76eb090f8b4d6a68361ce658 (diff) | |
download | gcc-05abad4cca62d3725175ccf628b74638fe43e043.zip gcc-05abad4cca62d3725175ccf628b74638fe43e043.tar.gz gcc-05abad4cca62d3725175ccf628b74638fe43e043.tar.bz2 |
invoke.texi: Document the options.
gcc/
* doc/invoke.texi: Document the options.
* flag-types.h (enum sanitize_code): Add
SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
* ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
* opts.c: Define new sanitizer options.
* sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
(BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
gcc/c/
* c-typeck.c (pointer_diff): Add new argument and instrument
pointer subtraction.
(build_binary_op): Similar for pointer comparison.
gcc/cp/
* typeck.c (pointer_diff): Add new argument and instrument
pointer subtraction.
(cp_build_binary_op): Create compound expression if doing an
instrumentation.
gcc/testsuite/
* c-c++-common/asan/pointer-compare-1.c: New test.
* c-c++-common/asan/pointer-compare-2.c: New test.
* c-c++-common/asan/pointer-subtract-1.c: New test.
* c-c++-common/asan/pointer-subtract-2.c: New test.
* c-c++-common/asan/pointer-subtract-3.c: New test.
* c-c++-common/asan/pointer-subtract-4.c: New test.
libsanitizer/
* asan/asan_descriptions.cc: Cherry-pick upstream r319668.
* asan/asan_descriptions.h: Likewise.
* asan/asan_report.cc: Likewise.
* asan/asan_thread.cc: Likewise.
* asan/asan_thread.h: Likewise.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r255404
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 8f12aa1..7846e93 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -260,8 +260,12 @@ sanitize_attrs_match_for_inline_p (const_tree caller, const_tree callee) if (!caller || !callee) return true; - return sanitize_flags_p (SANITIZE_ADDRESS, caller) - == sanitize_flags_p (SANITIZE_ADDRESS, callee); + return ((sanitize_flags_p (SANITIZE_ADDRESS, caller) + == sanitize_flags_p (SANITIZE_ADDRESS, callee)) + && (sanitize_flags_p (SANITIZE_POINTER_COMPARE, caller) + == sanitize_flags_p (SANITIZE_POINTER_COMPARE, callee)) + && (sanitize_flags_p (SANITIZE_POINTER_SUBTRACT, caller) + == sanitize_flags_p (SANITIZE_POINTER_SUBTRACT, callee))); } /* Used for flags where it is safe to inline when caller's value is |