In C mode, if e1 has attribute((noreturn)) but e2 doesn't, (c ? e1 : e2)
is incorrectly noreturn and Clang codegen produces unreachable
which may lead to miscompiles (see [1] gawk/support/dfa.c).
This problem has been known since
8c6b56f39d967347f28dd9c93f1cffddf6d7e4cd (2010) or earlier.
Fix this by making the result type noreturn only if both e1 and e2 are
noreturn, matching GCC.
_Noreturn and [[noreturn]] do not have the aforementioned problem.