@@ -84,10 +84,10 @@ class caseLabeledStmtFinder slr = object(self)
8484 then begin
8585 slr := s :: (! slr);
8686 match s.skind with
87- | Switch (_ ,_ ,_ ,_ ) -> SkipChildren
87+ | Switch (_ ,_ ,_ ,_ , _ ) -> SkipChildren
8888 | _ -> DoChildren
8989 end else match s.skind with
90- | Switch (_ ,_ ,_ ,_ ) -> SkipChildren
90+ | Switch (_ ,_ ,_ ,_ , _ ) -> SkipChildren
9191 | _ -> DoChildren
9292end
9393
@@ -180,10 +180,10 @@ and cfgStmt (s: stmt) (next:stmt option) (break:stmt option) (cont:stmt option)
180180 | hd ::_ -> addSucc hd
181181 in
182182 let instrFallsThrough (i : instr ) : bool = match i with
183- Call (_ , Lval (Var vf , NoOffset), _ , _ ) ->
183+ Call (_ , Lval (Var vf , NoOffset), _ , _ , _ ) ->
184184 (* See if this has the noreturn attribute *)
185185 not (hasAttribute " noreturn" vf.vattr)
186- | Call (_ , f , _ , _ ) ->
186+ | Call (_ , f , _ , _ , _ ) ->
187187 not (hasAttribute " noreturn" (typeAttrs (typeOf f)))
188188 | _ -> true
189189 in
@@ -198,7 +198,7 @@ and cfgStmt (s: stmt) (next:stmt option) (break:stmt option) (cont:stmt option)
198198 | ComputedGoto (e ,_ ) -> List. iter addSucc rlabels
199199 | Break _ -> addOptionSucc break
200200 | Continue _ -> addOptionSucc cont
201- | If (_ , blk1 , blk2 , _ ) ->
201+ | If (_ , blk1 , blk2 , _ , _ ) ->
202202 (* The succs of If is [true branch;false branch] *)
203203 addBlockSucc blk2 next;
204204 addBlockSucc blk1 next;
@@ -207,7 +207,7 @@ and cfgStmt (s: stmt) (next:stmt option) (break:stmt option) (cont:stmt option)
207207 | Block b ->
208208 addBlockSucc b next;
209209 cfgBlock b next break cont nodeList rlabels
210- | Switch (_ ,blk ,l ,_ ) ->
210+ | Switch (_ ,blk ,l ,_ , _ ) ->
211211 let bl = findCaseLabeledStmts blk in
212212 List. iter addSucc (List. rev bl(* l*) ); (* Add successors in order *)
213213 (* sfg: if there's no default, need to connect s->next *)
@@ -219,8 +219,8 @@ and cfgStmt (s: stmt) (next:stmt option) (break:stmt option) (cont:stmt option)
219219 then
220220 addOptionSucc next;
221221 cfgBlock blk next next cont nodeList rlabels
222- | Loop (blk , loc , s1 , s2 ) ->
223- s.skind < - Loop (blk, loc, (Some s), next);
222+ | Loop (blk , loc , eloc , s1 , s2 ) ->
223+ s.skind < - Loop (blk, loc, eloc, (Some s), next);
224224 addBlockSucc blk (Some s);
225225 cfgBlock blk (Some s) next (Some s) nodeList rlabels
226226 (* Since all loops have terminating condition true, we don't put
@@ -246,9 +246,9 @@ and fasStmt (todo) (s : stmt) =
246246 ignore(todo s);
247247 match s.skind with
248248 | Block b -> fasBlock todo b
249- | If (_ , tb , fb , _ ) -> (fasBlock todo tb; fasBlock todo fb)
250- | Switch (_ , b , _ , _ ) -> fasBlock todo b
251- | Loop (b , _ , _ , _ ) -> fasBlock todo b
249+ | If (_ , tb , fb , _ , _ ) -> (fasBlock todo tb; fasBlock todo fb)
250+ | Switch (_ , b , _ , _ , _ ) -> fasBlock todo b
251+ | Loop (b , _ , _ , _ , _ ) -> fasBlock todo b
252252 | (Return _ | Break _ | Continue _ | Goto _ | ComputedGoto _ | Instr _ ) -> ()
253253 | TryExcept _ | TryFinally _ -> E. s (E. unimp " try/except/finally" )
254254 end
@@ -264,7 +264,7 @@ let d_cfgnodelabel () (s : stmt) =
264264 let label =
265265 begin
266266 match s.skind with
267- | If (e , _ , _ , _ ) -> " if" (* sprint ~width:999 (dprintf "if %a" d_exp e)*)
267+ | If (e , _ , _ , _ , _ ) -> " if" (* sprint ~width:999 (dprintf "if %a" d_exp e)*)
268268 | Loop _ -> " loop"
269269 | Break _ -> " break"
270270 | Continue _ -> " continue"
0 commit comments