Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory.
First UBSan, then ASan followed by TSan… and now: yes, the wait is over – MSan is finally here! :)
Some historical context:
- 2017: Continuous compilation with Clang Thread Safety analysis enabled (#10866, #10923)
- 2018: Continuous testing with trapping on signed integer overflows (
-ftrapv
) (#12686) - 2018: Continuous testing of use of locale dependent functions (#13041)
- 2018: Continuous testing of format strings (#13705)
- 2018: Continuous compilation with MSVC
TreatWarningAsError
(#14151) - 2018: Continuous testing under UndefinedBehaviorSanitizer – UBSan (#14252, #14673, #17006)
- 2018: Continuous testing under AddressSanitizer – ASan (#14794, #17205, #17674)
- 2018: Continuous testing under ThreadSanitizer – TSan (#14829)
- 2019: Continuous testing in an unsigned char environment (
-funsigned-char
) (#15134) - 2019: Continuous compile-time testing of assumptions we’re making (#15391)
- 2019: Continuous testing of fuzz test cases under Valgrind (#17633, #18159, #18166)
- 2020: Finally… MemorySanitizer – MSAN! :)
What is the next step? What tools should we add to CI to keep bugs from entering master
? :)