mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
613be1c85d
commit
e2940b9866
|
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2017-01-01 Jan Hubicka <hubicka@ucw.cz>
|
||||||
|
|
||||||
PR middle-end/77484
|
PR middle-end/77484
|
||||||
|
|
|
||||||
|
|
@ -2214,6 +2214,9 @@ symtab_node::binds_to_current_def_p (symtab_node *ref)
|
||||||
{
|
{
|
||||||
if (!definition)
|
if (!definition)
|
||||||
return false;
|
return false;
|
||||||
|
if (transparent_alias)
|
||||||
|
return definition
|
||||||
|
&& get_alias_target()->binds_to_current_def_p (ref);
|
||||||
if (decl_binds_to_current_def_p (decl))
|
if (decl_binds_to_current_def_p (decl))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
@ -2225,8 +2228,6 @@ symtab_node::binds_to_current_def_p (symtab_node *ref)
|
||||||
if (DECL_EXTERNAL (decl))
|
if (DECL_EXTERNAL (decl))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!externally_visible)
|
|
||||||
debug ();
|
|
||||||
gcc_assert (externally_visible);
|
gcc_assert (externally_visible);
|
||||||
|
|
||||||
if (ref)
|
if (ref)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
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>
|
2017-01-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
Update copyright years.
|
Update copyright years.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
// { 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);
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Reference in New Issue