Justifications in Source Code

You can provide justifications in source code comments. With this workflow, justifications are naturally reallocated when changing other parts of a source file.

The justifications start with key CTC++ Justify inside a comment:

switch (month) {
    case JANUARY: ...        
    ...
    case DECEMBER: ...
    default: // CTC++ Justify | DefensiveDefaults: Function call is only performed with proper enumeration - reviewed.

These justifications are included in HTML reports if option -include-justifications is used with ctcreport

A justification is applied to the first matching counter on the same or the next source code line. Relevant is the line number ctc records for the coverage probe. For a multiline if decision, this is the last line of the decision. You can relax the search rule with indicator ">>" after justification type. In this case, ctcreport looks for a matching counter until the end of the function.
/* CTC++ Justify True >> | Effort: Error handling only, hardly testable. */
if (no_memory() ||
    no_space_on_hard_drive() ||
    network_connection_lost()){
  silently_say_goodbye();
  return;
}

Outside instrumented functions, only justifications of type Function are applied. By default, they refer to a function starting at the same or on the next line. Again, using ">>", the next instrumented function anywhere in the source file is chosen.