libstdc++: Add noexcept to functions in <regex>

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>

libstdc++-v3/ChangeLog:

	* include/bits/regex.h (basic_regex, swap): Add noexcept to
	non-throwing functions.
	* include/bits/regex_automaton.h (_State_base, _State)
	(_NFA_base): Likewise.
	* include/bits/regex_compiler.h (_Compiler): Likewise.
	* include/bits/regex_error.h (regex_error::code()): Likewise.
	* include/bits/regex_scanner.h (_Scanner): Likewise.
This commit is contained in:
Jonathan Wakely 2021-09-27 20:42:17 +01:00
parent aeaea265ce
commit df0dd04b78
5 changed files with 21 additions and 21 deletions

View file

@ -421,7 +421,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
* Constructs a basic regular expression that does not match any
* character sequence.
*/
basic_regex()
basic_regex() noexcept
: _M_flags(ECMAScript), _M_loc(), _M_automaton(nullptr)
{ }
@ -697,7 +697,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
* expression.
*/
unsigned int
mark_count() const
mark_count() const noexcept
{
if (_M_automaton)
return _M_automaton->_M_sub_count() - 1;
@ -709,7 +709,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
* or in the last call to assign().
*/
flag_type
flags() const
flags() const noexcept
{ return _M_flags; }
// [7.8.5] locale
@ -731,7 +731,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
* object.
*/
locale_type
getloc() const
getloc() const noexcept
{ return _M_loc; }
// [7.8.6] swap
@ -741,7 +741,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
* @param __rhs Another regular expression object.
*/
void
swap(basic_regex& __rhs)
swap(basic_regex& __rhs) noexcept
{
std::swap(_M_flags, __rhs._M_flags);
std::swap(_M_loc, __rhs._M_loc);
@ -848,7 +848,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
template<typename _Ch_type, typename _Rx_traits>
inline void
swap(basic_regex<_Ch_type, _Rx_traits>& __lhs,
basic_regex<_Ch_type, _Rx_traits>& __rhs)
basic_regex<_Ch_type, _Rx_traits>& __rhs) noexcept
{ __lhs.swap(__rhs); }

View file

@ -95,13 +95,13 @@ namespace __detail
};
protected:
explicit _State_base(_Opcode __opcode)
explicit _State_base(_Opcode __opcode) noexcept
: _M_opcode(__opcode), _M_next(_S_invalid_state_id)
{ }
public:
bool
_M_has_alt()
_M_has_alt() const noexcept
{
return _M_opcode == _S_opcode_alternative
|| _M_opcode == _S_opcode_repeat
@ -130,7 +130,7 @@ namespace __detail
"std::function<bool(char)>");
explicit
_State(_Opcode __opcode) : _State_base(__opcode)
_State(_Opcode __opcode) noexcept : _State_base(__opcode)
{
if (_M_opcode() == _S_opcode_match)
new (this->_M_matcher_storage._M_addr()) _MatcherT();
@ -143,7 +143,7 @@ namespace __detail
_MatcherT(__rhs._M_get_matcher());
}
_State(_State&& __rhs) : _State_base(__rhs)
_State(_State&& __rhs) noexcept : _State_base(__rhs)
{
if (__rhs._M_opcode() == _S_opcode_match)
new (this->_M_matcher_storage._M_addr())
@ -162,7 +162,7 @@ namespace __detail
// Since correct ctor and dtor rely on _M_opcode, it's better not to
// change it over time.
_Opcode
_M_opcode() const
_M_opcode() const noexcept
{ return _State_base::_M_opcode; }
bool
@ -170,11 +170,11 @@ namespace __detail
{ return _M_get_matcher()(__char); }
_MatcherT&
_M_get_matcher()
_M_get_matcher() noexcept
{ return *static_cast<_MatcherT*>(this->_M_matcher_storage._M_addr()); }
const _MatcherT&
_M_get_matcher() const
_M_get_matcher() const noexcept
{
return *static_cast<const _MatcherT*>(
this->_M_matcher_storage._M_addr());
@ -187,7 +187,7 @@ namespace __detail
typedef regex_constants::syntax_option_type _FlagT;
explicit
_NFA_base(_FlagT __f)
_NFA_base(_FlagT __f) noexcept
: _M_flags(__f), _M_start_state(0), _M_subexpr_count(0),
_M_has_backref(false)
{ }
@ -199,15 +199,15 @@ namespace __detail
public:
_FlagT
_M_options() const
_M_options() const noexcept
{ return _M_flags; }
_StateIdT
_M_start() const
_M_start() const noexcept
{ return _M_start_state; }
_SizeT
_M_sub_count() const
_M_sub_count() const noexcept
{ return _M_subexpr_count; }
_GLIBCXX_STD_C::vector<size_t> _M_paren_stack;

View file

@ -66,7 +66,7 @@ namespace __detail
const typename _TraitsT::locale_type& __traits, _FlagT __flags);
shared_ptr<const _RegexT>
_M_get_nfa()
_M_get_nfa() noexcept
{ return std::move(_M_nfa); }
private:

View file

@ -150,7 +150,7 @@ namespace regex_constants
* @returns the regex error code.
*/
regex_constants::error_type
code() const
code() const noexcept
{ return _M_code; }
private:

View file

@ -223,11 +223,11 @@ namespace __detail
_M_advance();
_TokenT
_M_get_token() const
_M_get_token() const noexcept
{ return _M_token; }
const _StringT&
_M_get_value() const
_M_get_value() const noexcept
{ return _M_value; }
#ifdef _GLIBCXX_DEBUG