User:Realazthat/Projects wishlist/LLVM/SMT: Difference between revisions
Content added Content deleted
m (→Alloca) |
(→Alloca) |
||
Line 36: | Line 36: | ||
'''Example:''' |
'''Example:''' |
||
<lang llvm> |
<lang llvm> |
||
%a = alloca |
%a = alloca i29, align 4 ; <i29*> [#uses=4] |
||
%b = alloca |
%b = alloca i35, align 4 ; <i35*> [#uses=4] |
||
</lang> |
</lang> |
||
Line 43: | Line 43: | ||
<pre> |
<pre> |
||
:extrafuns ((memoryState0 bv[10240])) |
:extrafuns ((memoryState0 bv[10240])) |
||
:extrafuns ((stackPtr0 bv[ |
:extrafuns ((stackPtr0 bv[16])) |
||
;------^^^Initial state ^^^------ |
;------^^^Initial state ^^^------ |
||
;%a = alloca |
;%a = alloca i29, align 4 ;; <i29*> |
||
:extrafuns ((a bv[16])) ; Pointer |
:extrafuns ((a bv[16])) ; Pointer |
||
:assumption (= a |
:assumption (= a stackPtr0)) ; Constraint |
||
:extrafuns ((stackPtr1 bv[ |
:extrafuns ((stackPtr1 bv[16])) |
||
:assumption (= stackPtr1 (bvadd stackPtr0 |
:assumption (= stackPtr1 (bvadd stackPtr0 29)) |
||
;%b = alloca |
;%b = alloca i35, align 4 ;; <i35*> |
||
:extrafuns ((b bv[16])) ; Pointer |
:extrafuns ((b bv[16])) ; Pointer |
||
:assumption (= b |
:assumption (= b stackPtr1) ; Constraint |
||
:extrafuns ((stackPtr2 bv[ |
:extrafuns ((stackPtr2 bv[16])) ; New stack pointer state |
||
:assumption (= stackPtr2 (bvadd stackPtr1 |
:assumption (= stackPtr2 (bvadd stackPtr1 35)) ; Constrain new stack pointer |
||
</pre> |
</pre> |