summaryrefslogtreecommitdiffstats
path: root/test/SemaCXX/cxx0x-delegating-ctors.cpp
blob: b211cb1fe004a052056fdcbb11e545ce12f1329d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// RUN: %clang_cc1 -fsyntax-only -std=c++0x -verify %s

struct foo {
  int i;
  foo();
  foo(int);
  foo(int, int);
  foo(bool);
  foo(char);
  foo(float*);
  foo(float&);
};

// Good
foo::foo (int i) : i(i) {
}
// Good
foo::foo () : foo(-1) {
}
// Good
foo::foo (int, int) : foo() {
}

foo::foo (bool) : foo(true) { // expected-error{{delegates to itself}}
}

// Good
foo::foo (float* f) : foo(*f) {
}

// FIXME: This should error
foo::foo (float &f) : foo(&f) {
}

foo::foo (char) : i(3), foo(3) { // expected-error{{must appear alone}}
}
OpenPOWER on IntegriCloud