That&#x27;s implementation-defined behaviour (do something nonstandard and document it) or unspecified behaviour (do something specific and nonstandard but don&#x27;t have to document it).<p>Undefined behaviour allows the compiler writer to have the code do anything unreliable and unpredictable and not document it. Its purpose is to allow compiler writers to completely ignore the erroneous code that results in UB and not spend effort trying to diagnose it or implement it. Most compilers still make an effort to diagnose some UB anyway, though.