[LLVMdev] optimization assumes malloc return is non-null

Jonathan S. Shapiro shap at eros-os.com
Wed Apr 30 11:23:03 PDT 2008


For C code this is unquestionably a bug.

On Wed, 2008-04-30 at 13:10 -0500, Ryan M. Lefever wrote:
> 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
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list