Giriş
Bu bir gcc extension. Derleyiciye bir değişkenin sadece belli bir aralıkta olacağını belirtmek için kullanılır.
Şöyle yaparız.
Bu bir gcc extension. Derleyiciye bir değişkenin sadece belli bir aralıkta olacağını belirtmek için kullanılır.
Şöyle yaparız.
#define assume(cond) do { if (!(cond)) __builtin_unreachable(); } while (0)
int func(int x){
assume(x >=0 && x <= 10);
if ( x > 11 ){
return 2;
}else{
return 17;
}
}
Böylece derleyiciye x'in [0-10] arasında olacağını bildiririz. Yani hep else kısmı çalışacaktır. Bu durumda şu kod üretilir.func(int):
mov eax, 17
ret
Hiç yorum yok:
Yorum Gönder