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>
|
||||
|
||||
PR middle-end/77484
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
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