Total errors: 1 Total warnings: 0 Bugs found that would have escaped unit test: 1 Lives potentially saved: unknown She closed the laptop. The ghosts, for now, were quiet.
“We can’t. But we also can’t afford a drone that falls out of the sky. I’ll pull strings.” Two hours later, a license file landed in her inbox. Eleanor downloaded the tool, a command-line beast with no GUI, just a configuration file that looked like an ancient spellbook. She spent the next hour tuning it: setting the dialect to C17, enabling MISRA C:2023, turning on the aggressive interprocedural analysis, and—her final gambit—flipping on . pc-lint plus se
for (int i = 0; i < SENSOR_HISTORY; i++) { temp_ptr = &sensor_buffer[(offset + i) % BUFSZ]; calib_ptr = &calib_table[temp_ptr->raw >> 2]; if (temp_ptr->value > 85.0) { *calib_ptr = apply_emergency_curve(temp_ptr->value); // here } } The aliasing was invisible to human eyes and to ordinary linters. But temp_ptr and calib_ptr could, under specific unrolling, point to overlapping memory if offset was maliciously crafted. The write to calib_ptr would then corrupt the next sensor’s buffer, causing a silent overflow. Total errors: 1 Total warnings: 0 Bugs found
Her manager, a pragmatist named Hank, hovered over her shoulder. “The client wants a root cause by Friday. We can’t keep respinning the hardware.” But we also can’t afford a drone that falls out of the sky
Hank nodded. “PC-lint Plus SE doesn’t just find bugs. It finds intentions . It sees the ghosts in the machine—the paths your code could take, even if it never has before.”
“I thought we couldn’t afford the SE tier,” she said.
That night, as she packed up, Eleanor looked at her terminal—still open, still showing PC-lint Plus SE’s final summary: