LLVM uses cpp as its C++ file extension, these are the only three cxx file in the monorepo. These files apparently were called to escape a CMake check -- use the LLVM_OPTIONAL_SOURCES mechanism that's meant as an escape for this case instead.
No intended behavior change.
It's not a hack, but the purpose of that setting. So just document the intent directly.