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
This commit is contained in:
Jakub Jelinek 2019-01-31 09:20:45 +01:00 committed by Jakub Jelinek
parent f4caead02f
commit 6206a883fe
4 changed files with 31 additions and 0 deletions

View file

@ -1,3 +1,9 @@
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>
PR rtl-optimization/89115

View file

@ -264,6 +264,12 @@ sanitize_attrs_match_for_inline_p (const_tree caller, const_tree callee)
if (!caller || !callee)
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)
== sanitize_flags_p (SANITIZE_ADDRESS, callee))
&& (sanitize_flags_p (SANITIZE_POINTER_COMPARE, caller)

View file

@ -1,3 +1,8 @@
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>
PR fortran/52564

View file

@ -0,0 +1,14 @@
/* 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);
}