brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 29b4545 Raw
111 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s2 3class S {4public:5  S ();6};7 8struct D : S {9  D() :10    b1(0), // expected-note {{previous initialization is here}}11    b2(1),12    b1(0), // expected-error {{multiple initializations given for non-static member 'b1'}}13    S(),   // expected-note {{previous initialization is here}}14    S()    // expected-error {{multiple initializations given for base 'S'}}15    {}16  int b1;17  int b2;18};19 20struct A {21  struct {22    int a;23    int b;24  };25  A();26};27 28A::A() : a(10), b(20) { }29 30namespace Test1 {31  template<typename T> struct A {};32  template<typename T> struct B : A<T> {33 34    B() : A<T>(), // expected-note {{previous initialization is here}}35      A<T>() { } // expected-error {{multiple initializations given for base 'A<T>'}}36  };37}38 39namespace Test2 {40  template<typename T> struct A : T {41    A() : T(), // expected-note {{previous initialization is here}}42      T() { } // expected-error {{multiple initializations given for base 'T'}}43  };44}45 46namespace Test3 {47  template<typename T> struct A {48    T t;49 50    A() : t(1), // expected-note {{previous initialization is here}}51      t(2) { } // expected-error {{multiple initializations given for non-static member 't'}}52  };53}54 55namespace test4 {56  class A {57    union {58      struct {59        int a;60        int b;61      };62 63      int c;64 65      union {66        int d;67        int e;68      };69    };70 71    A(char _) : a(0), b(0) {}72    A(short _) : a(0), c(0) {} // expected-error {{initializing multiple members of union}} expected-note {{previous initialization is here}}73    A(int _) : d(0), e(0) {} // expected-error {{initializing multiple members of union}} expected-note {{previous initialization is here}}74    A(long _) : a(0), d(0) {} // expected-error {{initializing multiple members of union}} expected-note {{previous initialization is here}}75  };76}77 78namespace test5 {79  struct Base {80    Base(int);81  };82  struct A : Base {83    A() : decltype(Base(1))(3) {84    }85    A(int) : Base(3), // expected-note {{previous initialization is here}}86             decltype(Base(1))(2), // expected-error {{multiple initializations given for base 'decltype(Base(1))' (aka 'Base')}}87             decltype(int())() { // expected-error {{constructor initializer 'decltype(int())' (aka 'int') does not name a class}}88    }89    A(float) : decltype(A())(3) {90    }91  };92}93 94namespace rdar13185264 {95  class X {96    X() : a(), // expected-note{{previous initialization is here}}97          a()  { } // expected-error{{multiple initializations given for non-static member 'a'}}98    union { void *a; };99  };100}101 102namespace PR16596 {103  class A { public: virtual ~A(); };104  typedef const A Foo;105  void Apply(Foo processor);106  struct Bar : public Foo {};107  void Fetch() {108    Apply(Bar());109  }110}111