Skip to content

Commit 4ff77b3

Browse files
committed
debug code because I can't reproduce the appveyor error on my machine
1 parent 3516ada commit 4ff77b3

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/util/graph.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,7 @@ void grapht<N>::disconnect_unreachable(node_indext src)
479479
disconnect_unreachable(source_nodes);
480480
}
481481

482+
#include <iostream>
482483
/// Removes any edges between nodes in a graph that are unreachable
483484
/// from a vector of start nodes.
484485
/// \param src: vector of indices of start nodes
@@ -488,8 +489,10 @@ void grapht<N>::disconnect_unreachable(const std::vector<node_indext> &src)
488489
std::vector<node_indext> reachable = get_reachable(src, true);
489490
std::sort(reachable.begin(), reachable.end());
490491
std::size_t reachable_idx = 0;
492+
std::cout<< "reachable size "<< reachable.size()<<std::endl;
491493
for(std::size_t i = 0; i < nodes.size(); i++)
492494
{
495+
std::cout<<"reachable_idx "<< reachable_idx <<" reachable[reachable_idx] "<< reachable[reachable_idx]<<" i "<< i <<std::endl;
493496
if(reachable_idx >= reachable.size())
494497
return;
495498

@@ -529,7 +532,6 @@ void get_reachable(
529532
while(!stack.empty())
530533
{
531534
auto n = stack.back();
532-
stack.pop_back();
533535
for_each_successor(n, [&](const nodet &node) {
534536
if(set.insert(node).second)
535537
stack.push_back(node);

unit/analyses/disconnect_unreachable_nodes_in_graph.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,11 @@ SCENARIO("graph", "[core][util][graph]")
188188
for(node_indext i = 0; i < exported.size(); ++i)
189189
nodes_by_name[exported[i].function] = i;
190190

191+
std::cout<<"original graph:\n";
192+
exported.output_dot(std::cout);
191193
exported.disconnect_unreachable(nodes_by_name["A"]);
194+
std::cout<<"new graph \n";
195+
exported.output_dot(std::cout);
192196

193197
THEN("We expect edges A -> { A, B }, B -> { C, D }")
194198
{
@@ -208,13 +212,17 @@ SCENARIO("graph", "[core][util][graph]")
208212
THEN("We expect {F} to be able to reach F")
209213
{
210214
std::set<irep_idt> predecessors = get_reaching_functions(exported, "F");
215+
for(const auto &p: predecessors)
216+
std::cout<<"predecessor of F: "<< nodes_by_name[p]<<std::endl;
211217
REQUIRE(predecessors.size() == 1);
212218
REQUIRE(predecessors.count("F"));
213219
}
214220

215221
THEN("We expect {G} to be able to reach G")
216222
{
217223
std::set<irep_idt> predecessors = get_reaching_functions(exported, "G");
224+
for(const auto &p: predecessors)
225+
std::cout<<"predecessor of G: "<< nodes_by_name[p]<<std::endl;
218226
REQUIRE(predecessors.size() == 1);
219227
REQUIRE(predecessors.count("G"));
220228
}

0 commit comments

Comments
 (0)