A final report can count records, apply a limit, and choose a compact status label.

threshold The limit decides which records need attention.
status label A small summary label makes the final result easy to scan.

Report Pipeline

warningLimit
report_pipeline.c
Replay: real traced execution (multi-file project)
#include <stdio.h>

int main(void) {
    int warningLimit = 1;
    int warnings[3] = {0, 1, 2};
    int flagged = 0;

    for (int i = 0; i < 3; i++) {
        if (warnings[i] > warningLimit) {
            flagged++;
        }
    }

    const char *status = "pass";
    if (flagged > 0) {
        status = "review";
    }

    printf("limit=%d flagged=%d status=%s\n", warningLimit, flagged, status);
    return 0;
}
#include <stdio.h>

int main(void) {
    int warningLimit = 0;
    int warnings[3] = {0, 1, 2};
    int flagged = 0;

    for (int i = 0; i < 3; i++) {
        if (warnings[i] > warningLimit) {
            flagged++;
        }
    }

    const char *status = "pass";
    if (flagged > 0) {
        status = "review";
    }

    printf("limit=%d flagged=%d status=%s\n", warningLimit, flagged, status);
    return 0;
}
#include <stdio.h>

int main(void) {
    int warningLimit = 2;
    int warnings[3] = {0, 1, 2};
    int flagged = 0;

    for (int i = 0; i < 3; i++) {
        if (warnings[i] > warningLimit) {
            flagged++;
        }
    }

    const char *status = "pass";
    if (flagged > 0) {
        status = "review";
    }

    printf("limit=%d flagged=%d status=%s\n", warningLimit, flagged, status);
    return 0;
}
  1. warningLimit ← 1, warnings ← ⟨addr A⟩, flagged ← 0

    3int main(void) {4    int warningLimit→ 1 = 1; //@warningLimit=0, 25    int warnings→ ⟨addr A⟩[3] = {0, 1, 2};6    int flagged→ 0 = 0;
  2. for (int i = 0; i < 3; i++)

    pass 1 of 3
    8for (int i0 = 0; i < 3; i++) {9    if (warnings[i] > warningLimit) {
    All 3 passes — pass 1 is the card above
    passiwarnings[i]warningLimitflagged
    10
    21
    32210 1
  3. flagged ← 1

    8for (int i = 0; i < 3; i++) {9    if (warnings[i]2 > warningLimit1) {10        flagged→ 1++;11    }
  4. status ← pass

    14const char *status→ pass = "pass";15if (flagged > 0) {
  5. status ← review

    14const char *status = "pass";15if (flagged1 > 0) {16    status→ review = "review";17}
  6. printf("limit=%d flagged=%d status=%s ", warningLimit, flagged, status…

    19    printf("limit=%d flagged=%d status=%s\n", warningLimit1, flagged1, statusreview);20    return 0;21}
    outputlimit=1 flagged=1 status=review
  1. warningLimit ← 0, warnings ← ⟨addr A⟩, flagged ← 0

    3int main(void) {4    int warningLimit→ 0 = 0;5    int warnings→ ⟨addr A⟩[3] = {0, 1, 2};6    int flagged→ 0 = 0;
  2. for (int i = 0; i < 3; i++)

    pass 1 of 3
    8for (int i0 = 0; i < 3; i++) {9    if (warnings[i] > warningLimit) {
    All 3 passes — pass 1 is the card above
    passiwarnings[i]warningLimitflagged
    10
    21100 1
    32201 2
  3. flagged ← 1

    pass 1 of 2
    8for (int i = 0; i < 3; i++) {9    if (warnings[i]1 > warningLimit0) {10        flagged→ 1++;11    }
  4. flagged ← 2

    pass 2 of 2
    8for (int i = 0; i < 3; i++) {9    if (warnings[i]2 > warningLimit0) {10        flagged→ 2++;11    }
  5. status ← pass

    14const char *status→ pass = "pass";15if (flagged > 0) {
  6. status ← review

    14const char *status = "pass";15if (flagged2 > 0) {16    status→ review = "review";17}
  7. printf("limit=%d flagged=%d status=%s ", warningLimit, flagged, status…

    19    printf("limit=%d flagged=%d status=%s\n", warningLimit0, flagged2, statusreview);20    return 0;21}
    outputlimit=0 flagged=2 status=review
  1. warningLimit ← 2, warnings ← ⟨addr A⟩, flagged ← 0

    3int main(void) {4    int warningLimit→ 2 = 2;5    int warnings→ ⟨addr A⟩[3] = {0, 1, 2};6    int flagged→ 0 = 0;
  2. for (int i = 0; i < 3; i++)

    pass 1 of 3
    8for (int i0 = 0; i < 3; i++) {9    if (warnings[i] > warningLimit) {
    All 3 passes — pass 1 is the card above
    passi
    10
    21
    32
  3. status ← pass

    14    const char *status→ pass = "pass";15    if (flagged > 0) {16        status = "review";17    }1819    printf("limit=%d flagged=%d status=%s\n", warningLimit2, flagged0, statuspass);20    return 0;21}
    outputlimit=2 flagged=0 status=pass