Make sure Spot compiles with g++-4.3.

* src/ltlast/formula.hh (hash): Remove const from return type.
This kills a g++-4.3 warning.
* src/misc/hash.hh: Adjust to use unordered_set and unordered_map
from TR1 when g++-4.3 is used.
* src/evtgba/product.cc, src/ltltest/randltl.cc,
src/ltlvisit/randomltl.cc, src/ltlvisit/tostring.cc,
src/misc/freelist.hh, src/misc/optionmap.cc,
src/tgba/tgbareduc.hh, src/tgbaalgos/gv04.cc,
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/randomgraph.cc,
src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
src/ltltest/equals.cc, src/ltltest/readltl.cc,
src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
src/ltltest/tostring.cc, src/tgbatest/ltlprod.cc,
src/tgbatest/powerset.cc, src/tgbatest/explprod.cc,
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc,
src/tgbatest/tripprod.cc, src/evtgbatest/product.cc,
src/evtgbatest/readsave.cc, src/evtgbatest/ltl2evtgba.cc,
src/evtgbatest/readsave.cc: Add missing includes.
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
src/tgbatest/explpro2.test, src/tgbatest/troprod.test,
src/tgbatest/emptchk.test: Cope with different outputs.
This commit is contained in:
Alexandre Duret-Lutz 2008-03-13 17:42:42 +01:00
parent f217ff374c
commit d3b702a97c
36 changed files with 177 additions and 94 deletions

View file

@ -1,4 +1,4 @@
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
// Copyright (C) 2003, 2004, 2005, 2008 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
@ -34,16 +34,26 @@
namespace Sgi
{ // inherit globals
using ::hash_map;
using ::hash_multimap;
using ::hash_set;
using ::hash;
};
}
# else
# include <ext/hash_map>
# include <ext/hash_set>
# if __GNUC__ == 3 && __GNUC_MINOR__ == 0
namespace Sgi = std; // GCC 3.0
# if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || __GNUC__ >= 4
# include <tr1/unordered_set> // GCC 4.3
# include <tr1/unordered_map>
namespace Sgi = std::tr1;
# define hash_map unordered_map
# define hash_multimap unordered_multimap
# define hash_set unordered_set
# else
namespace Sgi = ::__gnu_cxx; // GCC 3.1 and later
# include <ext/hash_map>
# include <ext/hash_set>
# if __GNUC__ == 3 && __GNUC_MINOR__ == 0
namespace Sgi = std; // GCC 3.0
# else
namespace Sgi = ::__gnu_cxx; // GCC 3.1 to 4.2
# endif
# endif
# endif
# else // ... there are other compilers, right?
@ -70,6 +80,10 @@ namespace spot
/// \brief A hash function for strings.
/// \ingroup hash_funcs
/// @{
# if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || __GNUC__ >= 4
typedef std::tr1::hash<std::string> string_hash;
# else // GCC < 4.3
struct string_hash :
public Sgi::hash<const char*>,
public std::unary_function<const std::string&, size_t>
@ -81,6 +95,8 @@ namespace spot
return Sgi::hash<const char*>::operator()(s.c_str());
}
};
/// @}
# endif
}
#endif // SPOT_MISC_HASH_HH