CCBM 5.4.3 now available (maintenance)

A maintenance release is now available. Consider updating if you are using Version 5.4.2 or older.

Improvements

  1. Documentation (tool help):

    • ccbm_mco: –help lists the syntax to mark unreachable code with
  2. Robustness:

    • (concurrency:) improved locking mechanism to deal with racing condition (see rt-tester: #9379)
  3. Processing:

    • treat lines containing only “} else {” as non-coding, since it
      is hard to argue what else they could be marked with; note that
      the statements before/after will give more precise information
      (implements #8799)
    • added forward propagation from ‘else’ and ‘case’ lines;
      look-ahead will only go to the next CCBM marker; if a condition
      statement (like ‘if’, ‘while’, ‘for’, …) is found before that, it will
      return with “don’t know”;
      also, look-ahead will stop if nesting level decreases (‘}’)
      (implements #8635 and #9193)
    • activate check for statements after break (also without –show-warnings);
      (implements #10792)
    • add parsing of C99 syntax struct_t v = { : };
      (implements #8693)

Bugfixes

  1. Instrumentation (asts-ccbm-prepare-file / ccbm_prep ):

    • allow final line with C++ comment that lacks line termination (fixes PR#10069)
    • added reset to “outside function” if brace-level drops to 0 (fixes PR#9227)
    • activate scan for ‘switch without default’ (fixes PR #10791)