4 ms·
Undefined behaviour is the same across all compilers. The compilers aren't the things which make the behaviour undefined, its the C standard.
by octo_t 10y ago
Undefined behaviour is the same across all compilers. The compilers aren't the things which make the behaviour undefined, its the C standard.
- pjmlp 10y agoNo it is not, if you ever tried to write portable C code you should clearly be aware that each C compiler has its own flavor of undefined behavior. The C standard is very generous in terms of undefined behavior freedom.
- dsfuoi 10y agoBy definition made in the C Standard, undefined behavior is: behavior, upon use of a nonportable or erroneous program construct or of erroneous data, for which this International Standard imposes no requirements If you're using some other definition, then say so, otherwise your comments make no sense.
- pjmlp 10y agoGiven my-app.c, each C compiler out there will pick a different UB subset and not everything that is defined as UB in the standard. They are free to do that and still be compliant, after all UB means anything goes.
- lorenzhs 10y agoThat compilers may behave differently is exactly the point of UB, if they all had to behave the same it wouldn't be undefined, after all!