diff options
author | tijl <tijl@FreeBSD.org> | 2013-03-23 00:54:51 +0800 |
---|---|---|
committer | tijl <tijl@FreeBSD.org> | 2013-03-23 00:54:51 +0800 |
commit | 928f60d5727cfbf9b1fbb92142c4405ae251c7e5 (patch) | |
tree | ea452ff5ac949ae4aa16015f26699b6fe05e8c69 /lang/sdcc/files | |
parent | acf9f2a907ba792237c7d74b87ea55211a316309 (diff) | |
download | freebsd-ports-gnome-928f60d5727cfbf9b1fbb92142c4405ae251c7e5.tar.gz freebsd-ports-gnome-928f60d5727cfbf9b1fbb92142c4405ae251c7e5.tar.zst freebsd-ports-gnome-928f60d5727cfbf9b1fbb92142c4405ae251c7e5.zip |
Fix build with boost 1.52.
Approved by: crees
Obtained from: sdcc revision 8145
Diffstat (limited to 'lang/sdcc/files')
-rw-r--r-- | lang/sdcc/files/patch-boost | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/lang/sdcc/files/patch-boost b/lang/sdcc/files/patch-boost new file mode 100644 index 000000000000..e06c27eba0ea --- /dev/null +++ b/lang/sdcc/files/patch-boost @@ -0,0 +1,55 @@ +--- src/SDCCtree_dec.hpp.orig ++++ src/SDCCtree_dec.hpp +@@ -53,6 +53,14 @@ + #include <boost/graph/copy.hpp> + #include <boost/graph/adjacency_list.hpp> + ++struct forget_properties ++{ ++ template<class T1, class T2> ++ void operator()(const T1&, const T2&) const ++ { ++ } ++}; ++ + // Thorup algorithm D. + // The use of the multimap makes the complexity of this O(|I|log|I|), which could be reduced to O(|I|). + template <class l_t> +@@ -152,7 +160,7 @@ + { + // Should we do this? Or just use G as J? The Thorup paper seems unclear, it speaks of statements that contain jumps to other statements, but does it count as a jump, when they're just subsequent? + boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS> J; +- boost::copy_graph(G, J); ++ boost::copy_graph(G, J, boost::vertex_copy(forget_properties()).edge_copy(forget_properties())); + for (unsigned int i = 0; i < boost::num_vertices(J) - 1; i++) + remove_edge(i, i + 1, J); + +@@ -256,7 +264,7 @@ + + // Todo: Implement a graph adaptor for boost that allows to treat directed graphs as undirected graphs. + boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> G_sym; +- boost::copy_graph(G, G_sym); ++ boost::copy_graph(G, G_sym, boost::vertex_copy(forget_properties()).edge_copy(forget_properties())); + + std::vector<bool> active(boost::num_vertices(G), true); + +--- src/SDCCralloc.hpp.orig ++++ src/SDCCralloc.hpp +@@ -419,7 +419,7 @@ + for (var_t i = boost::num_vertices(con) - 1; i >= 0; i--) + { + cfg_sym_t cfg2; +- boost::copy_graph(cfg, cfg2); ++ boost::copy_graph(cfg, cfg2, boost::vertex_copy(forget_properties()).edge_copy(forget_properties())); + for (int j = boost::num_vertices(cfg) - 1; j >= 0; j--) + { + if (cfg[j].alive.find(i) == cfg[j].alive.end()) +@@ -436,7 +436,7 @@ + #endif + // Non-connected CFGs shouldn't exist either. Another problem with dead code eliminarion. + cfg_sym_t cfg2; +- boost::copy_graph(cfg, cfg2); ++ boost::copy_graph(cfg, cfg2, boost::vertex_copy(forget_properties()).edge_copy(forget_properties())); + std::vector<boost::graph_traits<cfg_t>::vertices_size_type> component(num_vertices(cfg2)); + boost::connected_components(cfg2, &component[0]); + |