• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daisytuner / sdfglib / 20770413849

06 Jan 2026 10:50PM UTC coverage: 62.168% (+21.4%) from 40.764%
20770413849

push

github

web-flow
Merge pull request #433 from daisytuner/clang-coverage

updates clang coverage flags

14988 of 24109 relevant lines covered (62.17%)

88.57 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

31.71
/src/data_flow/library_nodes/stdlib/free.cpp
1
#include "sdfg/data_flow/library_nodes/stdlib/free.h"
2

3
namespace sdfg {
4
namespace stdlib {
5

6
FreeNode::FreeNode(
7
    size_t element_id, const DebugInfo& debug_info, const graph::Vertex vertex, data_flow::DataFlowGraph& parent
8
)
9
    : LibraryNode(
4✔
10
          element_id,
4✔
11
          debug_info,
4✔
12
          vertex,
4✔
13
          parent,
4✔
14
          LibraryNodeType_Free,
4✔
15
          {"_ptr"},
4✔
16
          {"_ptr"},
4✔
17
          true,
4✔
18
          data_flow::ImplementationType_NONE
4✔
19
      ) {}
4✔
20

21

22
void FreeNode::validate(const Function& function) const {}
2✔
23

24
symbolic::SymbolSet FreeNode::symbols() const { return {}; }
4✔
25

26
std::unique_ptr<data_flow::DataFlowNode> FreeNode::
27
    clone(size_t element_id, const graph::Vertex vertex, data_flow::DataFlowGraph& parent) const {
×
28
    return std::make_unique<FreeNode>(element_id, debug_info_, vertex, parent);
×
29
}
×
30

31
void FreeNode::replace(const symbolic::Expression old_expression, const symbolic::Expression new_expression) {
×
32
    // Do nothing
33
    return;
×
34
}
×
35

36
nlohmann::json FreeNodeSerializer::serialize(const data_flow::LibraryNode& library_node) {
×
37
    const FreeNode& node = static_cast<const FreeNode&>(library_node);
×
38

39
    nlohmann::json j;
×
40
    j["code"] = node.code().value();
×
41

42
    return j;
×
43
}
×
44

45
data_flow::LibraryNode& FreeNodeSerializer::deserialize(
46
    const nlohmann::json& j, builder::StructuredSDFGBuilder& builder, structured_control_flow::Block& parent
47
) {
×
48
    assert(j.contains("code"));
×
49
    assert(j.contains("debug_info"));
×
50

51
    auto code = j["code"].get<std::string>();
×
52
    if (code != LibraryNodeType_Free.value()) {
×
53
        throw InvalidSDFGException("Invalid library node code");
×
54
    }
×
55

56
    sdfg::serializer::JSONSerializer serializer;
×
57
    DebugInfo debug_info = serializer.json_to_debug_info(j["debug_info"]);
×
58

59
    return builder.add_library_node<FreeNode>(parent, debug_info);
×
60
}
×
61

62
FreeNodeDispatcher::FreeNodeDispatcher(
63
    codegen::LanguageExtension& language_extension,
64
    const Function& function,
65
    const data_flow::DataFlowGraph& data_flow_graph,
66
    const FreeNode& node
67
)
68
    : codegen::LibraryNodeDispatcher(language_extension, function, data_flow_graph, node) {}
×
69

70
void FreeNodeDispatcher::dispatch_code(
71
    codegen::PrettyPrinter& stream,
72
    codegen::PrettyPrinter& globals_stream,
73
    codegen::CodeSnippetFactory& library_snippet_factory
74
) {
×
75
    auto& free_node = static_cast<const FreeNode&>(node_);
×
76

77
    stream << language_extension_.external_prefix() << "free(" << free_node.inputs().at(0) << ");" << std::endl;
×
78
}
×
79

80
} // namespace stdlib
81
} // namespace sdfg
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc