re PR target/66655 (miscompilation due to ipa-ra on MinGW)

PR target/66655
	* config/i386/winnt.c (i386_pe_binds_local_p): If a function has
	been marked as DECL_ONE_ONLY but we do not the means to make it
	so, then do not allow it to bind locally.

From-SVN: r232828
This commit is contained in:
Nick Clifton 2016-01-26 14:02:11 +00:00 committed by Nick Clifton
parent b1b46af04f
commit b8b025dc0b
2 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2016-01-26 Nick Clifton <nickc@redhat.com>
PR target/66655
* config/i386/winnt.c (i386_pe_binds_local_p): If a function has
been marked as DECL_ONE_ONLY but we do not the means to make it
so, then do not allow it to bind locally.
2016-01-26 Jakub Jelinek <jakub@redhat.com>
PR lto/69254

View File

@ -341,6 +341,20 @@ i386_pe_binds_local_p (const_tree exp)
&& TREE_PUBLIC (exp)
&& DECL_EXTERNAL (exp))
return true;
#ifndef MAKE_DECL_ONE_ONLY
/* PR target/66655: If a function has been marked as DECL_ONE_ONLY
but we do not the means to make it so, then do not allow it to
bind locally. */
if (DECL_P (exp)
&& TREE_CODE (exp) == FUNCTION_DECL
&& TREE_PUBLIC (exp)
&& DECL_ONE_ONLY (exp)
&& ! DECL_EXTERNAL (exp)
&& DECL_DECLARED_INLINE_P (exp))
return false;
#endif
return default_binds_local_p_1 (exp, 0);
}