[cfe-dev] Possible clang bug with -O2, wrong if branch entered, in clang version 2.1 (tags/Apple/clang-163.7.1)

Dmitri Gribenko gribozavr at gmail.com
Tue Feb 21 07:57:01 PST 2012


On Tue, Feb 21, 2012 at 4:47 PM, Salvatore Sanfilippo <antirez at gmail.com> wrote:
> Sorry, there was a problem with cut&paste of the gist URL, the correct one is:
>
> https://gist.github.com/1876875

Hi Salvatore,

If I understand this code correctly, there is a signed overflow.
Signed overflow is undefined behavior.  Clang (or LLVM) apparently
takes advantage of that by optimizing (incr < 0 && value > oldvalue)
=> false.

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/



More information about the cfe-dev mailing list