brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 6ffed9b Raw
60 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3struct S {4   S (S);  // expected-error {{copy constructor must pass its first argument by reference}}5};6 7S f();8 9void g() { 10  S a( f() );11}12 13class foo {14  foo(foo&, int); // expected-note {{previous}}15  foo(int); // expected-note {{previous}}16  foo(const foo&); // expected-note {{previous}}17};18 19foo::foo(foo&, int = 0) { } // expected-error {{makes this constructor a copy constructor}}20foo::foo(int = 0) { } // expected-error {{makes this constructor a default constructor}}21foo::foo(const foo& = 0) { } //expected-error {{makes this constructor a default constructor}}22 23namespace PR6064 {24  struct A {25    A() { }26    inline A(A&, int); // expected-note {{previous}}27  };28 29  A::A(A&, int = 0) { } // expected-error {{makes this constructor a copy constructor}}30 31  void f() {32    A const a;33    A b(a);34  }35}36 37namespace PR10618 {38  struct A {39    A(int, int, int); // expected-note {{previous}}40  };41  A::A(int a = 0, // expected-error {{makes this constructor a default constructor}}42       int b = 0,43       int c = 0) {}44 45  struct B {46    B(int);47    B(const B&, int); // expected-note {{previous}}48  };49  B::B(const B& = B(0), // expected-error {{makes this constructor a default constructor}}50       int = 0) {51  }52 53  struct C {54    C(const C&, int); // expected-note {{previous}}55  };56  C::C(const C&,57       int = 0) { // expected-error {{makes this constructor a copy constructor}}58  }59}60