[LLVMdev] optimization assumes malloc return is non-null
Ryan M. Lefever
lefever at crhc.uiuc.edu
Wed Apr 30 11:10:50 PDT 2008
Consider the following c code:
#include <stdlib.h>
int main(int argc, char** argv){
if(malloc(sizeof(int)) == NULL){ return 0; }
else{ return 1; }
}
When I compile it with -O3, it produces the following bytecode:
define i32 @main(i32 %argc, i8** %argv) {
entry:
ret i32 1
}
Is this an error? It should be possible for malloc to return NULL, if
it can not allocate more space. In fact, some programs should be able
to gracefully handle such situations.
Regards,
Ryan
More information about the llvm-dev
mailing list