[LLVMdev] optimization assumes malloc return is non-null

Ryan M. Lefever lefever at crhc.uiuc.edu
Wed Apr 30 13:10:50 CDT 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 LLVMdev mailing list