Commit 31387e8f authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

mark custom hash functions as noexcept

* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/misc/hash.hh,
spot/twa/acc.hh, spot/twaalgos/cobuchi.cc, spot/twaalgos/degen.cc,
spot/twaalgos/determinize.cc, spot/twaalgos/parity.cc,
spot/twaalgos/powerset.cc, spot/twaalgos/product.cc,
spot/twaalgos/stutter.cc, spot/twaalgos/totgba.cc,
spot/twaalgos/toweak.cc: Mark hash function as noexcept to please GCC
snapshot.
parent 7f5c1d37
// -*- coding: utf-8 -*-
// Copyright (C) 2013, 2014, 2017 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
// Copyright (C) 2013, 2014, 2017, 2018 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
//
......@@ -115,7 +115,7 @@ namespace spot
return res;
}
size_t bitvect::hash() const
size_t bitvect::hash() const noexcept
{
block_t res = fnv<sizeof(block_t)>::init();
......
// -*- coding: utf-8 -*-
// Copyright (C) 2013-2017 Laboratoire de Recherche et Développement
// Copyright (C) 2013-2018 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -156,7 +156,7 @@ namespace spot
return 8 * block_count_ * sizeof(block_t);
}
size_t hash() const;
size_t hash() const noexcept;
bool get(size_t pos) const
{
......
// -*- coding: utf-8 -*-
// Copyright (C) 2008, 2011, 2014, 2015 Laboratoire de Recherche et
// Copyright (C) 2008, 2011, 2014, 2015, 2018 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
......@@ -46,7 +46,7 @@ namespace spot
{
}
size_t operator()(const T* p) const
size_t operator()(const T* p) const noexcept
{
return knuth32_hash(reinterpret_cast<const char*>(p)
- static_cast<const char*>(nullptr));
......@@ -63,13 +63,13 @@ namespace spot
struct identity_hash:
public std::unary_function<const T&, size_t>
{
// A default constructor is needed if the string_hash object is
// A default constructor is needed if the identity_hash object is
// stored in a const member.
identity_hash()
{
}
size_t operator()(const T& s) const
size_t operator()(const T& s) const noexcept
{
return s;
}
......@@ -79,7 +79,7 @@ namespace spot
struct pair_hash
{
template<typename T, typename U>
std::size_t operator()(const std::pair<T, U> &p) const
std::size_t operator()(const std::pair<T, U> &p) const noexcept
{
std::hash<T> th;
std::hash<U> uh;
......
// -*- coding: utf-8 -*-
// Copyright (C) 2014, 2015, 2016, 2017 Laboratoire de Recherche et
// Développement de l'Epita.
// Copyright (C) 2014-2018 Laboratoire de Recherche et Développement
// de l'Epita.
//
// This file is part of Spot, a model checking library.
//
......@@ -1526,7 +1526,7 @@ namespace std
template<>
struct hash<spot::acc_cond::mark_t>
{
size_t operator()(spot::acc_cond::mark_t m) const
size_t operator()(spot::acc_cond::mark_t m) const noexcept
{
std::hash<decltype(m.id)> h;
return h(m.id);
......
// -*- coding: utf-8 -*-
// Copyright (C) 2017 Laboratoire de Recherche et Développement
// Copyright (C) 2017, 2018 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -292,7 +292,8 @@ namespace spot
{
struct mp_hash
{
size_t operator()(std::pair<unsigned, const bitvect_array*> bv) const
size_t
operator()(std::pair<unsigned, const bitvect_array*> bv) const noexcept
{
size_t res = 0;
size_t size = bv.second->size();
......
// -*- coding: utf-8 -*-
// Copyright (C) 2012-2017 Laboratoire de Recherche
// Copyright (C) 2012-2018 Laboratoire de Recherche
// et Développement de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -44,7 +44,7 @@ namespace spot
struct degen_state_hash
{
size_t
operator()(const degen_state& s) const
operator()(const degen_state& s) const noexcept
{
return wang32_hash(s.first ^ wang32_hash(s.second));
}
......
// -*- coding: utf-8 -*-
// Copyright (C) 2015-2017 Laboratoire de Recherche et
// Copyright (C) 2015-2018 Laboratoire de Recherche et
// Développement de l'Epita.
//
// This file is part of Spot, a model checking library.
......@@ -115,7 +115,7 @@ namespace spot
struct hash_safra
{
size_t
operator()(const safra_state& s) const
operator()(const safra_state& s) const noexcept
{
return s.hash();
}
......
......@@ -427,7 +427,7 @@ namespace spot
struct state_history_hash
{
size_t
operator()(const state_history& mat) const
operator()(const state_history& mat) const noexcept
{
unsigned result = 0;
for (unsigned i = 0; i < mat.get_left_num_sets(); ++i)
......@@ -493,7 +493,7 @@ namespace spot
struct sh_succ_hash
{
size_t
operator()(std::tuple<sh_label_t, value_t, value_t> x) const
operator()(std::tuple<sh_label_t, value_t, value_t> x) const noexcept
{
return wang32_hash(std::get<0>(x) ^ wang32_hash(std::get<1>(x)
^ wang32_hash(std::get<2>(x))));
......@@ -510,7 +510,7 @@ namespace spot
struct product_state_hash
{
size_t
operator()(product_state_t s) const
operator()(product_state_t s) const noexcept
{
return wang32_hash(std::get<0>(s) ^ wang32_hash(std::get<1>(s)
^ wang32_hash(std::get<2>(s))));
......
// -*- coding: utf-8 -*-
// Copyright (C) 2009-2011, 2013-2017 Laboratoire de Recherche et
// Copyright (C) 2009-2011, 2013-2018 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
......@@ -56,7 +56,7 @@ namespace spot
struct bv_hash
{
size_t operator()(const bitvect* bv) const
size_t operator()(const bitvect* bv) const noexcept
{
return bv->hash();
}
......
// -*- coding: utf-8 -*-
// Copyright (C) 2014-2017 Laboratoire de Recherche et Développement
// Copyright (C) 2014-2018 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -33,7 +33,7 @@ namespace spot
struct product_state_hash
{
size_t
operator()(product_state s) const
operator()(product_state s) const noexcept
{
return wang32_hash(s.first ^ wang32_hash(s.second));
}
......
// -*- coding: utf-8 -*-
// Copyright (C) 2014-2017 Laboratoire de Recherche et Développement de
// Copyright (C) 2014-2018 Laboratoire de Recherche et Développement de
// l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -255,7 +255,7 @@ namespace spot
struct stutter_state_hash
{
size_t
operator()(const stutter_state& s) const
operator()(const stutter_state& s) const noexcept
{
return wang32_hash(s.first) ^ wang32_hash(s.second.id());
}
......
......@@ -446,7 +446,7 @@ namespace spot
struct st2gba_state_hash
{
size_t
operator()(const st2gba_state& s) const
operator()(const st2gba_state& s) const noexcept
{
std::hash<acc_cond::mark_t> h;
return s.s ^ h(s.pend);
......
// -*- coding: utf-8 -*-
// Copyright (C) 2017 Laboratoire de Recherche et Développement
// Copyright (C) 2017, 2018 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
......@@ -46,7 +46,7 @@ namespace spot
struct rc_state_hash
{
size_t
operator()(const rc_state& s) const
operator()(const rc_state& s) const noexcept
{
using std::hash;
return ((hash<int>()(s.id)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment