Purging Undefined Behavior & Intel Assumptions in a Legacy C++ Codebase
summary
Shows concrete fixes not fluff: uses clang sanitizers (ASan/UBSan) and thread sanitizer to find use‑after‑free, uninitialized-data and race bugs; adds clang-tidy and custom static checks in CI, plus deprecation‑as‑error for UB‑invoking APIs so new code stays clean. Describes porting to Apple Silicon for a 15M‑line product family with ~2M shared lines, a tooling‑first rollout that finds dozens of bugs before QA, and pragmatic fixes that reduce platform breaks.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 7:47Undefined behavior in C++
- 18:31Legacy code and Intel assumptions
- 24:46Legacy bugs war stories
- 37:26Cultural changes for safety
- 41:18Tooling for safer code
- 51:15Apple Silicon and new architectures
- 54:04Q&A
related talks
01h 00mPurging undefined behavior and Intel assumptions in Legacy Codebases
01h 00mSanitize for your Sanity: Sanitizers tools for Modern C++
50mSecure development with C++ - Lessons and techniques
01h 02mSanitize your C++ code
01h 04mRemoving Needless Undefined Behavior for a Safer C++
22mWriting safe and secure code
01h 12mFinding Bugs with Clang at Compile and Run Time
01h 30mDangerous Optimizations in C and C++ Programming Languages
