diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc index 4754ef5a5229a35a19a8127de552c94d79847772..609bd6e8c9b50d1afeb0b59d2548de78411c3cc2 100644 --- a/gcc/cp/name-lookup.cc +++ b/gcc/cp/name-lookup.cc @@ -3101,7 +3101,7 @@ update_binding (cp_binding_level *level, cxx_binding *binding, tree *slot, { if (same_type_p (TREE_TYPE (old), TREE_TYPE (decl))) /* Two type decls to the same type. Do nothing. */ - return old_bval; + return old; else goto conflict; } @@ -3114,7 +3114,7 @@ update_binding (cp_binding_level *level, cxx_binding *binding, tree *slot, /* The new one must be an alias at this point. */ gcc_assert (DECL_NAMESPACE_ALIAS (decl)); - return old_bval; + return old; } else if (TREE_CODE (old) == VAR_DECL) { diff --git a/gcc/testsuite/g++.dg/lookup/using70.C b/gcc/testsuite/g++.dg/lookup/using70.C new file mode 100644 index 0000000000000000000000000000000000000000..14838eea7ec3d4e9103701b5af94cd86a17c207b --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/using70.C @@ -0,0 +1,13 @@ +// PR c++/116913 +// { dg-do compile { target c++11 } } + +namespace ns { + struct c {}; + using d = int; +} + +using ns::c; +using ns::d; + +using c = ns::c; +using d = ns::d;