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

daisytuner / sdfglib / 17907551353

22 Sep 2025 07:12AM UTC coverage: 60.192% (-0.5%) from 60.653%
17907551353

push

github

web-flow
Merge pull request #233 from daisytuner/returns

adds constant returns with type and extends API

60 of 184 new or added lines in 10 files covered. (32.61%)

19 existing lines in 5 files now uncovered.

9514 of 15806 relevant lines covered (60.19%)

105.75 hits per line

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

82.5
/src/codegen/dispatchers/while_dispatcher.cpp
1
#include "sdfg/codegen/dispatchers/while_dispatcher.h"
2

3
namespace sdfg {
4
namespace codegen {
5

6
WhileDispatcher::WhileDispatcher(
2✔
7
    LanguageExtension& language_extension,
8
    StructuredSDFG& sdfg,
9
    structured_control_flow::While& node,
10
    InstrumentationPlan& instrumentation_plan
11
)
12
    : NodeDispatcher(language_extension, sdfg, node, instrumentation_plan), node_(node) {
2✔
13

14
      };
2✔
15

16
void WhileDispatcher::dispatch_node(
1✔
17
    PrettyPrinter& main_stream, PrettyPrinter& globals_stream, CodeSnippetFactory& library_snippet_factory
18
) {
19
    main_stream << "while (1)" << std::endl;
1✔
20
    main_stream << "{" << std::endl;
1✔
21

22
    main_stream.setIndent(main_stream.indent() + 4);
1✔
23
    SequenceDispatcher dispatcher(language_extension_, sdfg_, node_.root(), instrumentation_plan_);
1✔
24
    dispatcher.dispatch(main_stream, globals_stream, library_snippet_factory);
1✔
25
    main_stream.setIndent(main_stream.indent() - 4);
1✔
26

27
    main_stream << "}" << std::endl;
1✔
28
};
1✔
29

30
BreakDispatcher::BreakDispatcher(
2✔
31
    LanguageExtension& language_extension,
32
    StructuredSDFG& sdfg,
33
    structured_control_flow::Break& node,
34
    InstrumentationPlan& instrumentation_plan
35
)
36
    : NodeDispatcher(language_extension, sdfg, node, instrumentation_plan), node_(node) {
2✔
37

38
      };
2✔
39

40
void BreakDispatcher::dispatch_node(
1✔
41
    PrettyPrinter& main_stream, PrettyPrinter& globals_stream, CodeSnippetFactory& library_snippet_factory
42
) {
43
    main_stream << "break;" << std::endl;
1✔
44
};
1✔
45

46
ContinueDispatcher::ContinueDispatcher(
2✔
47
    LanguageExtension& language_extension,
48
    StructuredSDFG& sdfg,
49
    structured_control_flow::Continue& node,
50
    InstrumentationPlan& instrumentation_plan
51
)
52
    : NodeDispatcher(language_extension, sdfg, node, instrumentation_plan), node_(node) {
2✔
53

54
      };
2✔
55

56
void ContinueDispatcher::dispatch_node(
1✔
57
    PrettyPrinter& main_stream, PrettyPrinter& globals_stream, CodeSnippetFactory& library_snippet_factory
58
) {
59
    main_stream << "continue;" << std::endl;
1✔
60
};
1✔
61

62
ReturnDispatcher::ReturnDispatcher(
2✔
63
    LanguageExtension& language_extension,
64
    StructuredSDFG& sdfg,
65
    structured_control_flow::Return& node,
66
    InstrumentationPlan& instrumentation_plan
67
)
68
    : NodeDispatcher(language_extension, sdfg, node, instrumentation_plan), node_(node) {
2✔
69

70
      };
2✔
71

72
void ReturnDispatcher::dispatch_node(
1✔
73
    PrettyPrinter& main_stream, PrettyPrinter& globals_stream, CodeSnippetFactory& library_snippet_factory
74
) {
75
    if (node_.unreachable()) {
1✔
76
        main_stream << "/* unreachable return */" << std::endl;
×
77
    } else if (node_.is_data()) {
1✔
78
        main_stream << "return " << node_.data() << ";" << std::endl;
1✔
79
    } else if (node_.is_constant()) {
1✔
NEW
80
        if (symbolic::is_nullptr(symbolic::symbol(node_.data()))) {
×
NEW
81
            main_stream << "return " << this->language_extension_.expression(symbolic::symbol(node_.data())) << ";"
×
NEW
82
                        << std::endl;
×
NEW
83
        } else {
×
NEW
84
            main_stream << "return " << node_.data() << ";" << std::endl;
×
85
        }
UNCOV
86
    }
×
87
};
1✔
88

89
} // namespace codegen
90
} // 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