Commit 6206a883 by Jakub Jelinek Committed by Jakub Jelinek

re PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with…

re PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with __attribute__((target(xxx))))

	PR sanitizer/89124
	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
	always_inline callees into no_sanitize_address callers.

	* c-c++-common/asan/pr89124.c: New test.

From-SVN: r268415
parent f4caead0
2019-01-31 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/89124
* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
always_inline callees into no_sanitize_address callers.
2019-01-31 Richard Biener <rguenther@suse.de> 2019-01-31 Richard Biener <rguenther@suse.de>
PR rtl-optimization/89115 PR rtl-optimization/89115
......
...@@ -264,6 +264,12 @@ sanitize_attrs_match_for_inline_p (const_tree caller, const_tree callee) ...@@ -264,6 +264,12 @@ sanitize_attrs_match_for_inline_p (const_tree caller, const_tree callee)
if (!caller || !callee) if (!caller || !callee)
return true; return true;
/* Allow inlining always_inline functions into no_sanitize_address
functions. */
if (!sanitize_flags_p (SANITIZE_ADDRESS, caller)
&& lookup_attribute ("always_inline", DECL_ATTRIBUTES (callee)))
return true;
return ((sanitize_flags_p (SANITIZE_ADDRESS, caller) return ((sanitize_flags_p (SANITIZE_ADDRESS, caller)
== sanitize_flags_p (SANITIZE_ADDRESS, callee)) == sanitize_flags_p (SANITIZE_ADDRESS, callee))
&& (sanitize_flags_p (SANITIZE_POINTER_COMPARE, caller) && (sanitize_flags_p (SANITIZE_POINTER_COMPARE, caller)
......
2019-01-31 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/89124
* c-c++-common/asan/pr89124.c: New test.
2019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/52564 PR fortran/52564
......
/* PR sanitizer/89124 */
/* { dg-do compile } */
static int inline __attribute__ ((always_inline))
foo (int x)
{
return x + 1;
}
__attribute__ ((no_sanitize_address)) int
bar (int x)
{
return foo (x);
}
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