cxx-using-directive.cpp 944 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // RUN: clang -fsyntax-only -verify %s
  2. class A {};
  3. namespace B {
  4. namespace A {}
  5. using namespace A ;
  6. }
  7. namespace C {}
  8. namespace D {
  9. class C {
  10. using namespace B ; // expected-error{{expected unqualified-id}}
  11. //FIXME: this needs better error message
  12. };
  13. namespace B {}
  14. using namespace C ;
  15. using namespace B::A ; // expected-error{{expected namespace name}}
  16. //FIXME: would be nice to note, that A is not member of D::B
  17. using namespace ::B::A ;
  18. using namespace ::D::C ; // expected-error{{expected namespace name}}
  19. }
  20. using namespace ! ; // expected-error{{expected namespace name}}
  21. using namespace A ; // expected-error{{expected namespace name}}
  22. using namespace ::A // expected-error{{expected namespace name}} \
  23. // expected-error{{expected ';' after namespace name}}
  24. B ;
  25. void test_nslookup() {
  26. int B;
  27. class C;
  28. using namespace B;
  29. using namespace C;
  30. }