Commit e2940b98 by Jan Hubicka Committed by Jan Hubicka

re PR ipa/77674 (ICE in binds_to_current_def_p with -fkeep-inline-functions)


	PR middle-end/77674
	* symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
	transparent aliases.

	PR middle-end/77674
	* g++.dg/torture/pr77674.C: New testcase.

From-SVN: r243997
parent 613be1c8
2017-01-01 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/77674
* symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
transparent aliases.
2017-01-01 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/77484
* predict.def (PRED_CALL): Update hitrate.
(PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
......
......@@ -2214,6 +2214,9 @@ symtab_node::binds_to_current_def_p (symtab_node *ref)
{
if (!definition)
return false;
if (transparent_alias)
return definition
&& get_alias_target()->binds_to_current_def_p (ref);
if (decl_binds_to_current_def_p (decl))
return true;
......@@ -2225,8 +2228,6 @@ symtab_node::binds_to_current_def_p (symtab_node *ref)
if (DECL_EXTERNAL (decl))
return false;
if (!externally_visible)
debug ();
gcc_assert (externally_visible);
if (ref)
......
2017-01-01 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/77674
* g++.dg/torture/pr77674.C: New testcase.
2017-01-01 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
......
// { dg-do compile }
typedef struct { } __fsid_t;
typedef unsigned long int pthread_t;
extern "C" {
extern __inline __attribute__ ((__gnu_inline__)) int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () {
}
}
typedef pthread_t __gthread_t;
static __typeof (pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__ ("pthread_equal")));
static inline int __gthread_equal (__gthread_t __t1, __gthread_t __t2)
{
return __gthrw_pthread_equal (__t1, __t2);
}
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