brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 17237a3 Raw
62 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3namespace A {4    int VA;5    void FA() {}6    struct SA { int V; };7}8 9using A::VA;10using A::FA;11using typename A::SA;12 13int main()14{15    VA = 1;16    FA();17    SA x;   //Still needs handling.18}19 20struct B {21    void f(char){};22    void g(char){};23};24struct D : B {25    using B::f;26    void f(int);27    void g(int);28};29void D::f(int) { f('c'); } // calls B::f(char)30void D::g(int) { g('c'); } // recursively calls D::g(int)31 32namespace E {33    template <typename TYPE> int funcE(TYPE arg) { return(arg); }34}35 36using E::funcE<int>; // expected-error{{using declaration cannot refer to a template specialization}}37 38namespace F {39    struct X;40}41 42using F::X;43// Should have some errors here.  Waiting for implementation.44void X(int);45struct X *x;46 47 48namespace ShadowedTagNotes {49 50namespace foo {51  class Bar {};52}53 54void Bar(int); // expected-note{{class 'Bar' is hidden by a non-type declaration of 'Bar' here}}55using foo::Bar;56 57void ambiguity() {58   const Bar *x; // expected-error{{must use 'class' tag to refer to type 'Bar' in this scope}}59}60 61} // namespace ShadowedTagNotes62