diff options
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/name-lookup.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index fb043af..1b0a13f 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -4356,12 +4356,13 @@ arg_assoc_class (struct arg_lookup *k, tree type) context = decl_namespace (TYPE_MAIN_DECL (type)); if (arg_assoc_namespace (k, context)) return true; - - /* Process baseclasses. */ - for (i = 0; i < BINFO_N_BASE_BINFOS (TYPE_BINFO (type)); i++) - if (arg_assoc_class - (k, BINFO_TYPE (BINFO_BASE_BINFO (TYPE_BINFO (type), i)))) - return true; + + if (TYPE_BINFO (type)) + /* Process baseclasses. */ + for (i = 0; i < BINFO_N_BASE_BINFOS (TYPE_BINFO (type)); i++) + if (arg_assoc_class + (k, BINFO_TYPE (BINFO_BASE_BINFO (TYPE_BINFO (type), i)))) + return true; /* Process friends. */ for (list = DECL_FRIENDLIST (TYPE_MAIN_DECL (type)); list; |