summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp0x/noexcept08.C
blob: 1df85efff9c14b34a098d2aeece30b0e8de48a2e (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// { dg-options "-std=c++0x" }
// { dg-prune-output "overriding" }

struct A
{
  virtual void f();
  virtual void g() throw();
  virtual void h() noexcept;
  virtual void i() noexcept(false);
  virtual void j() throw(int);
};

struct B: A
{
  void f() noexcept;
  void g() noexcept;
  void h() noexcept;
  void i() noexcept;
  void j() noexcept;
};

struct C: A
{
  void f() throw();
  void g() throw();
  void h() throw();
  void i() throw();
  void j() throw();
};

struct D: A
{
  void f() noexcept(false);
  void g() noexcept(false);	// { dg-error "looser" }
  void h() noexcept(false);	// { dg-error "looser" }
  void i() noexcept(false);
  void j() noexcept(false);	// { dg-error "looser" }
};

struct E: A
{
  void f() throw(int);
  void g() throw(int);		// { dg-error "looser" }
  void h() throw(int);		// { dg-error "looser" }
  void i() throw(int);
  void j() throw(int);
};

struct F: A
{
  void f();
  void g();			// { dg-error "looser" }
  void h();			// { dg-error "looser" }
  void i();
  void j();			// { dg-error "looser" }
};