On Tue, Feb 4, 2014 at 4:39 AM, Yury Gribov <y.gri...@samsung.com> wrote: > -------- Original Message -------- > Subject: [PATCH][PING] Fix for PR59600 (prohibit inlining if > no_sanitize_address) > Date: Tue, 28 Jan 2014 09:13:10 +0400 > From: Yury Gribov <y.gri...@samsung.com> > To: GCC Patches <gcc-patches@gcc.gnu.org> > > -------- Original Message -------- > Subject: [PATCH] Fix for PR59600 > Date: Tue, 21 Jan 2014 14:42:31 +0400 > From: Yury Gribov <y.gri...@samsung.com> > To: GCC Patches <gcc-patches@gcc.gnu.org> > > Hi, > > This patch fixes the problem reported in > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59600 : functions with > mismatching no_sanitize_address attributes should not be considered for > inlining, otherwise the meaning of no_sanitize_address will not be > preserved. > > I didn't get feedback in Bugzilla so I'm sending the patch here. > > Bootstrapped/regtested on x64.
I think you can't rely on pointer equivalence of the lookup_attribute result so you want instead of + return lookup_attribute ("no_sanitize_address", + DECL_ATTRIBUTES (caller)) == + lookup_attribute ("no_sanitize_address", + DECL_ATTRIBUTES (callee)); return (lookup_attribute ("no_sanitize_address", DECL_ATTRIBUTES (caller)) != NULL_TREE) == (lookup_attribute ("no_sanitize_address", DECL_ATTRIBUTES (callee)) != NULL_TREE); Please also name CIF_OPTION_MISMATCH as CIF_ATTRIBUTE_MISMATCH and say "function attribute mismatch" in the description. Thanks, Richard. Richard. > -Y > > > > > >