[LLVMdev] interesting possible compiler bug
reed kotler
rkotler at mips.com
Mon Oct 1 18:34:43 PDT 2012
This code is essentially from an LTP test ( http://ltp.sourceforge.net/
<http://ltp.sourceforge.net/> ).
#include <stdlib.h>
int main() {
void *curr;
do {
curr = malloc(1);
} while (curr);
return 0;
}
If you compile it with no optimization, it will keep the malloc calls.
If you compile it with -O2, it will create an infinite loop, i.e.
assuming that malloc always returns a non zero result and the result is
not used.
~/llvmpb/install/bin/clang loop.c -O2 -S
.file "loop.c"
.text
.globl main
.align 16, 0x90
.type main, at function
main: # @main
.cfi_startproc
# BB#0: # %entry
.align 16, 0x90
.LBB0_1: # %do.body
# =>This Inner Loop Header: Depth=1
jmp .LBB0_1
.Ltmp0:
.size main, .Ltmp0-main
.cfi_endproc
.section ".note.GNU-stack","", at progbits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121001/98dfdbb2/attachment.html>
More information about the llvm-dev
mailing list