Browse Source

added [[noreturn]] attribute to pybind11_fail

pull/193/head
Wenzel Jakob 9 years ago
parent
commit
fc92d82bba
  1. 1
      example/example12.cpp
  2. 4
      include/pybind11/common.h

1
example/example12.cpp

@ -56,7 +56,6 @@ public: @@ -56,7 +56,6 @@ public:
/* This function has no arguments. The trailing comma
in the previous line is needed for some compilers */
);
throw std::runtime_error("this will never be reached");
}
virtual void pure_virtual() {

4
include/pybind11/common.h

@ -324,7 +324,7 @@ struct error_already_set : public std::runtime_error { public: error_already_set @@ -324,7 +324,7 @@ struct error_already_set : public std::runtime_error { public: error_already_set
/// Thrown when pybind11::cast or handle::call fail due to a type casting error
struct cast_error : public std::runtime_error { public: cast_error(const std::string &w = "") : std::runtime_error(w) {} };
PYBIND11_NOINLINE inline void pybind11_fail(const char *reason) { throw std::runtime_error(reason); }
PYBIND11_NOINLINE inline void pybind11_fail(const std::string &reason) { throw std::runtime_error(reason); }
[[noreturn]] PYBIND11_NOINLINE inline void pybind11_fail(const char *reason) { throw std::runtime_error(reason); }
[[noreturn]] PYBIND11_NOINLINE inline void pybind11_fail(const std::string &reason) { throw std::runtime_error(reason); }
NAMESPACE_END(pybind11)

Loading…
Cancel
Save