Purging undefined behavior and Intel assumptions in Legacy Codebases
summary
Claim: removing undefined behavior and Intel assumptions cuts maintenance and makes new platforms tractable. Evidence: concrete bugs (UI glyphs corrupted after an Xcode update, a Windows‑update crash fixed before launch, flaky DSP regression failures) get diagnosed and fixed. Tools and changes: roll out clang‑tidy, run address sanitizer and UB sanitizer in CI, use thread sanitizer for threading bugs, add deprecation+warnings‑as‑errors for new code and a core‑guidelines rule. Result: test flakiness and many cross‑platform failures disappear and Apple Silicon support stabilizes.
AI-written summary · about
chapters (15)
- 0:00Undefined behavior basics
- 2:26What is undefined behavior
- 7:17C++ behavior types
- 10:26Undefined behavior examples
- 14:35Legacy code and Intel assumptions
- 17:01Fixing undefined behavior challenges
- 19:48Xcode update breaks UI
- 23:36Windows update crashes plugin
- 28:58Non-deterministic test failures
- 33:56Cultural changes to prevent UB
- 38:09Tooling to detect UB
- 44:11Rolling out sanitizers
- 46:38Testing on Apple Silicon
- 49:26Lessons learned
- 51:16Q&A
related talks
01h 03mPurging Undefined Behavior & Intel Assumptions in a Legacy C++ Codebase
01h 04mRemoving Needless Undefined Behavior for a Safer C++
34mMaking C Less Dangerous
01h 30mDangerous Optimizations in C and C++ Programming Languages
33mUndefined Behavior in C++: What Every Programmer Should Know and Fear
18mDon't Look UB: Exposing Sanitizer-Eliding Compiler Optimizations
22mWriting safe and secure code
58mKeynote: Safety and Security: The Future of C and C++
