[Linux-kernel-mentees] [PATCH 07/32] parsing_cocci: iso_pattern: Reflect Cast attributes
Jaskaran Singh
jaskaransingh7654321 at gmail.com
Tue Apr 28 17:02:03 UTC 2020
Cast attributes are added to the SmPL AST. Reflect these changes in
iso_pattern.ml.
Signed-off-by: Jaskaran Singh <jaskaransingh7654321 at gmail.com>
---
parsing_cocci/iso_pattern.ml | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/parsing_cocci/iso_pattern.ml b/parsing_cocci/iso_pattern.ml
index 9df21fb9..b57e293e 100644
--- a/parsing_cocci/iso_pattern.ml
+++ b/parsing_cocci/iso_pattern.ml
@@ -575,7 +575,7 @@ let match_maker checks_needed context_required whencode_allowed =
(* all caps is a const *)
Str.string_match all_caps nm 0
| _ -> false)
- | Ast0.Cast(lp,ty,rp,e) -> matches e
+ | Ast0.Cast(lp,ty,attr,rp,e) -> matches e
| Ast0.SizeOfExpr(se,exp) -> true
| Ast0.SizeOfType(se,lp,ty,rp) -> true
| Ast0.MetaExpr(nm,_,_,Ast.CONST,p,_bitfield) ->
@@ -586,7 +586,7 @@ let match_maker checks_needed context_required whencode_allowed =
let rec matches e =
match Ast0.unwrap e with
Ast0.Ident(c) -> true
- | Ast0.Cast(lp,ty,rp,e) -> matches e
+ | Ast0.Cast(lp,ty,attr,rp,e) -> matches e
| Ast0.MetaExpr(nm,_,_,Ast.ID,p,_bitfield) ->
(Ast0.lub_pure p pure) = pure
| _ -> false in
@@ -757,10 +757,16 @@ let match_maker checks_needed context_required whencode_allowed =
conjunct_many_bindings
[check_mcode opa op; match_expr expa expb;
match_ident fielda fieldb]
- | (Ast0.Cast(lp1,tya,rp1,expa),Ast0.Cast(lp,tyb,rp,expb)) ->
+ | (Ast0.Cast(lp1,tya,attra,rp1,expa),
+ Ast0.Cast(lp,tyb,attrb,rp,expb)) ->
+ if (List.length attra = List.length attrb &&
+ List.fold_left2 (fun p a b -> p && mcode_equal a b) true
+ attra attrb)
+ then
conjunct_many_bindings
[check_mcode lp1 lp; check_mcode rp1 rp;
match_typeC tya tyb; match_expr expa expb]
+ else return false
| (Ast0.SizeOfExpr(szf1,expa),Ast0.SizeOfExpr(szf,expb)) ->
conjunct_bindings (check_mcode szf1 szf) (match_expr expa expb)
| (Ast0.SizeOfType(szf1,lp1,tya,rp1),
--
2.21.1
More information about the Linux-kernel-mentees
mailing list