prevent undefined behaviour at a language level while probing getenv
Backport of
a5823872283be23731f1bcde7e19a926c44b31a4
This test in Configure tries to probe for undefined behaviour in
getenv (), but provokes undefined behaviour in C/C++ by falling off
the end of a function with a non-void return type.
Without optimization clang++ generated a ud2 instruction here on
amd64 producing an illegal instruction exception. With optimization
the test case fell off the end and started re-executing main (),
eventually producing a SIGBUS.
Simply dropping the value of getenv () here and returning NULL wasn't
useful, under -O2 the compiler optimized away the getenv () call,
voiding the whole point of the test.