<br> Hi,<br><br> Currently, llvm treats the loads from a null address as unreachable code, i.e.:<br> load i32* null<br>is transformed by some optimization pass into<br> unreachable<br><br>This presents problems in JIT compilers like mono which implement null pointer checks by trapping SIGSEGV signals. It also<br>
looks incorrect since it changes program behavior, which might be undefined in general, but it is quite well defined on unix.<br>Is there a way to prevent llvm from doing this besides marking all loads as volatile ?<br><br>
thanks<br> <br> Zoltan<br><br>