It is converted to int, so you have a signed multiplication. I don't think you need be a language lawyer to know this, just very basic C.
But I also do not worry about signed overflow anyhow, because compilers can turn them into traps.
But I also do not worry about signed overflow anyhow, because compilers can turn them into traps.
Language standards shouldn't rely on compiler options to save developers here. There's a lot of compilers in the world that don't support the same range of options GCC and clang have, like CompCert. Those are often the ones building safety-critical applications these days, where trapping would be inappropriate.
Whether trapping is appropriate or not depends on the context, but it surprising to hear as an argument, because Rust also has a fail hard policy...