view gcc/testsuite/g++.dg/cpp0x/noexcept08.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do compile { target c++11 } }
// { 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);	// { dg-error "dynamic exception specification" "" { target c++17 } }
};				// { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }

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" "" { target { ! c++17 } } }
};

struct E: A
{
  void f() throw(int);		// { dg-error "dynamic exception specification" "" { target c++17 } }
				// { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
  void g() throw(int);		// { dg-error "looser" }
				// { dg-error "dynamic exception specification" "" { target c++17 } .-1 }
				// { dg-warning "deprecated" "" { target { ! c++17 } } .-2 }
  void h() throw(int);		// { dg-error "looser" }
				// { dg-error "dynamic exception specification" "" { target c++17 } .-1 }
				// { dg-warning "deprecated" "" { target { ! c++17 } } .-2 }
  void i() throw(int);		// { dg-error "dynamic exception specification" "" { target c++17 } }
				// { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
  void j() throw(int);		// { dg-error "dynamic exception specification" "" { target c++17 } }
				// { dg-warning "deprecated" "" { target { ! c++17 } } .-1 }
};

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