1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s
28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics
36e24726524c2b51b31bb4b622aa678a46b024f42John McCall
46e24726524c2b51b31bb4b622aa678a46b024f42John McCall// This is basically paraphrased from the standard.
56e24726524c2b51b31bb4b622aa678a46b024f42John McCall
66e24726524c2b51b31bb4b622aa678a46b024f42John McCallnamespace Root {
76e24726524c2b51b31bb4b622aa678a46b024f42John McCall  int i = 0;
86e24726524c2b51b31bb4b622aa678a46b024f42John McCall  void f();
96e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
106e24726524c2b51b31bb4b622aa678a46b024f42John McCall
116e24726524c2b51b31bb4b622aa678a46b024f42John McCallnamespace A {
126e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using namespace Root;
136e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
146e24726524c2b51b31bb4b622aa678a46b024f42John McCall
156e24726524c2b51b31bb4b622aa678a46b024f42John McCallnamespace B {
166e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using namespace Root;
176e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
186e24726524c2b51b31bb4b622aa678a46b024f42John McCall
196e24726524c2b51b31bb4b622aa678a46b024f42John McCallnamespace AB {
206e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using namespace A;
216e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using namespace B;
226e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
236e24726524c2b51b31bb4b622aa678a46b024f42John McCall
246e24726524c2b51b31bb4b622aa678a46b024f42John McCallvoid test() {
256e24726524c2b51b31bb4b622aa678a46b024f42John McCall  if (AB::i)
266e24726524c2b51b31bb4b622aa678a46b024f42John McCall    AB::f();
276e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
286e24726524c2b51b31bb4b622aa678a46b024f42John McCall
296e24726524c2b51b31bb4b622aa678a46b024f42John McCallnamespace C {
306e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using Root::i;
316e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using Root::f;
326e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
336e24726524c2b51b31bb4b622aa678a46b024f42John McCall
346e24726524c2b51b31bb4b622aa678a46b024f42John McCallnamespace AC {
356e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using namespace A;
366e24726524c2b51b31bb4b622aa678a46b024f42John McCall  using namespace C;
376e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
386e24726524c2b51b31bb4b622aa678a46b024f42John McCall
396e24726524c2b51b31bb4b622aa678a46b024f42John McCallvoid test2() {
406e24726524c2b51b31bb4b622aa678a46b024f42John McCall  if (AC::i)
416e24726524c2b51b31bb4b622aa678a46b024f42John McCall    AC::f();
426e24726524c2b51b31bb4b622aa678a46b024f42John McCall}
43