Setting CMAKE_C(XX)_FLAGS_DEBUG to "" in CMakePresets.json makes it compile for x32

There are two things you should confirm:

  • If you invoke the clang binaries directly, what sort of target do they build by default? 64-bit or 32-bit? By this I mean invoking them outside of anything to do with CMake, so just running directly at a command line to compile some test file.
  • If you don’t explicitly set CMAKE_CXX_FLAGS_DEBUG to anything, what does that variable contain by default? About the only way I can see explicitly setting this to an empty string making a difference is if for some reason it contains a setting that changes the target platform (which would be both weird and wrong).