C#: Add testcase for GVN printing.

This commit is contained in:
Michael Nebel
2022-02-15 14:16:30 +01:00
parent 7e25b141ca
commit 796a18043b
2 changed files with 130 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
same
| StructuralComparison.cs:15:18:15:18 | access to field x | StructuralComparison.cs:16:18:16:18 | access to field x |
| StructuralComparison.cs:15:18:15:22 | ... + ... | StructuralComparison.cs:16:18:16:22 | ... + ... |
| StructuralComparison.cs:15:22:15:22 | access to field y | StructuralComparison.cs:16:22:16:22 | access to field y |
@@ -100,3 +101,130 @@
| StructuralComparison.cs:50:18:50:21 | access to property Prop | StructuralComparison.cs:51:18:51:26 | access to property Prop |
| StructuralComparison.cs:51:18:51:26 | access to property Prop | StructuralComparison.cs:49:18:49:26 | access to property Prop |
| StructuralComparison.cs:51:18:51:26 | access to property Prop | StructuralComparison.cs:50:18:50:21 | access to property Prop |
gvn
| StructuralComparison.cs:5:26:5:26 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:5:26:5:26 | this access | [(kind:Expr(12))] |
| StructuralComparison.cs:5:26:5:30 | ... = ... | [[(kind:Expr(16),true,x)] :: 0 :: (kind:Expr(63))] |
| StructuralComparison.cs:5:30:5:30 | 0 | 0 |
| StructuralComparison.cs:6:26:6:26 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:6:26:6:26 | this access | [(kind:Expr(12))] |
| StructuralComparison.cs:6:26:6:30 | ... = ... | [[(kind:Expr(16),true,y)] :: 1 :: (kind:Expr(63))] |
| StructuralComparison.cs:6:30:6:30 | 1 | 1 |
| StructuralComparison.cs:8:24:8:24 | 0 | 0 |
| StructuralComparison.cs:9:29:9:29 | access to parameter a | [(kind:Expr(15),false,a)] |
| StructuralComparison.cs:10:38:10:39 | access to parameter v1 | [(kind:Expr(15),false,v1)] |
| StructuralComparison.cs:10:38:10:44 | ... + ... | [[(kind:Expr(15),false,v2)] :: [(kind:Expr(15),false,v1)] :: (kind:Expr(44))] |
| StructuralComparison.cs:10:43:10:44 | access to parameter v2 | [(kind:Expr(15),false,v2)] |
| StructuralComparison.cs:14:5:17:5 | {...} | [[[[(kind:Expr(14),false,z2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z1)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
| StructuralComparison.cs:15:9:15:23 | ... ...; | [[[(kind:Expr(14),false,z1)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:15:13:15:14 | access to local variable z1 | [(kind:Expr(14),false,z1)] |
| StructuralComparison.cs:15:13:15:22 | Int32 z1 = ... | [[(kind:Expr(14),false,z1)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] |
| StructuralComparison.cs:15:18:15:18 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:15:18:15:18 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:15:18:15:22 | ... + ... | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] |
| StructuralComparison.cs:15:22:15:22 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:15:22:15:22 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:16:9:16:23 | ... ...; | [[[(kind:Expr(14),false,z2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:16:13:16:14 | access to local variable z2 | [(kind:Expr(14),false,z2)] |
| StructuralComparison.cs:16:13:16:22 | Int32 z2 = ... | [[(kind:Expr(14),false,z2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] |
| StructuralComparison.cs:16:18:16:18 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:16:18:16:18 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:16:18:16:22 | ... + ... | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] |
| StructuralComparison.cs:16:22:16:22 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:16:22:16:22 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:20:5:29:5 | {...} | [[[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] :: [[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] :: [[[(kind:Expr(14),false,z7)] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z6)] :: [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z5)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z4)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z3)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
| StructuralComparison.cs:21:9:21:23 | ... ...; | [[[(kind:Expr(14),false,z3)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:21:13:21:14 | access to local variable z3 | [(kind:Expr(14),false,z3)] |
| StructuralComparison.cs:21:13:21:22 | Int32 z3 = ... | [[(kind:Expr(14),false,z3)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] |
| StructuralComparison.cs:21:18:21:22 | call to method M1 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] |
| StructuralComparison.cs:21:18:21:22 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:21:21:21:21 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:21:21:21:21 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:22:9:22:23 | ... ...; | [[[(kind:Expr(14),false,z4)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:22:13:22:14 | access to local variable z4 | [(kind:Expr(14),false,z4)] |
| StructuralComparison.cs:22:13:22:22 | Int32 z4 = ... | [[(kind:Expr(14),false,z4)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] |
| StructuralComparison.cs:22:18:22:22 | call to method M1 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] |
| StructuralComparison.cs:22:18:22:22 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:22:21:22:21 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:22:21:22:21 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:23:9:23:23 | ... ...; | [[[(kind:Expr(14),false,z5)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:23:13:23:14 | access to local variable z5 | [(kind:Expr(14),false,z5)] |
| StructuralComparison.cs:23:13:23:22 | Int32 z5 = ... | [[(kind:Expr(14),false,z5)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] |
| StructuralComparison.cs:23:18:23:22 | call to method M1 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] |
| StructuralComparison.cs:23:18:23:22 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:23:21:23:21 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:23:21:23:21 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:24:9:24:22 | ... ...; | [[[(kind:Expr(14),false,z6)] :: [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:24:13:24:14 | access to local variable z6 | [(kind:Expr(14),false,z6)] |
| StructuralComparison.cs:24:13:24:21 | Int32 z6 = ... | [[(kind:Expr(14),false,z6)] :: [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] :: (kind:Expr(83))] |
| StructuralComparison.cs:24:18:24:21 | call to method M0 | [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] |
| StructuralComparison.cs:24:18:24:21 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:25:9:25:37 | ... ...; | [[[(kind:Expr(14),false,z7)] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:25:13:25:14 | access to local variable z7 | [(kind:Expr(14),false,z7)] |
| StructuralComparison.cs:25:13:25:36 | Int32 z7 = ... | [[(kind:Expr(14),false,z7)] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] :: (kind:Expr(83))] |
| StructuralComparison.cs:25:18:25:25 | call to method M2 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
| StructuralComparison.cs:25:18:25:25 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:25:18:25:36 | ... + ... | [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] |
| StructuralComparison.cs:25:21:25:21 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:25:21:25:21 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:25:24:25:24 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:25:24:25:24 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:25:29:25:36 | call to method M2 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
| StructuralComparison.cs:25:29:25:36 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:25:32:25:32 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:25:32:25:32 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:25:35:25:35 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:25:35:25:35 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:26:9:26:16 | call to method M2 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
| StructuralComparison.cs:26:9:26:16 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:26:9:26:17 | ...; | [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] |
| StructuralComparison.cs:26:12:26:12 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:26:12:26:12 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:26:15:26:15 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:26:15:26:15 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:27:9:27:16 | call to method M2 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
| StructuralComparison.cs:27:9:27:16 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:27:9:27:17 | ...; | [[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] |
| StructuralComparison.cs:27:12:27:12 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:27:12:27:12 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:27:15:27:15 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:27:15:27:15 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:28:9:28:16 | call to method M2 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
| StructuralComparison.cs:28:9:28:16 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:28:9:28:17 | ...; | [[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] |
| StructuralComparison.cs:28:12:28:12 | access to field y | [(kind:Expr(16),true,y)] |
| StructuralComparison.cs:28:12:28:12 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:28:15:28:15 | access to field x | [(kind:Expr(16),true,x)] |
| StructuralComparison.cs:28:15:28:15 | this access | [(kind:Expr(12),false,Class)] |
| StructuralComparison.cs:41:5:45:5 | {...} | [[[[(kind:Expr(14),false,x3)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,x2)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,x1)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
| StructuralComparison.cs:42:9:42:28 | ... ...; | [[[(kind:Expr(14),false,x1)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:42:13:42:14 | access to local variable x1 | [(kind:Expr(14),false,x1)] |
| StructuralComparison.cs:42:13:42:27 | Int32 x1 = ... | [[(kind:Expr(14),false,x1)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] |
| StructuralComparison.cs:42:18:42:21 | base access | [(kind:Expr(13),false,BaseClass)] |
| StructuralComparison.cs:42:18:42:27 | access to field Field | [(kind:Expr(16),true,Field)] |
| StructuralComparison.cs:43:9:43:23 | ... ...; | [[[(kind:Expr(14),false,x2)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:43:13:43:14 | access to local variable x2 | [(kind:Expr(14),false,x2)] |
| StructuralComparison.cs:43:13:43:22 | Int32 x2 = ... | [[(kind:Expr(14),false,x2)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] |
| StructuralComparison.cs:43:18:43:22 | access to field Field | [(kind:Expr(16),true,Field)] |
| StructuralComparison.cs:43:18:43:22 | this access | [(kind:Expr(12),false,DerivedClass)] |
| StructuralComparison.cs:44:9:44:28 | ... ...; | [[[(kind:Expr(14),false,x3)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:44:13:44:14 | access to local variable x3 | [(kind:Expr(14),false,x3)] |
| StructuralComparison.cs:44:13:44:27 | Int32 x3 = ... | [[(kind:Expr(14),false,x3)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] |
| StructuralComparison.cs:44:18:44:21 | this access | [(kind:Expr(12),false,DerivedClass)] |
| StructuralComparison.cs:44:18:44:27 | access to field Field | [(kind:Expr(16),true,Field)] |
| StructuralComparison.cs:48:5:52:5 | {...} | [[[[(kind:Expr(14),false,y3)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,y2)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,y1)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
| StructuralComparison.cs:49:9:49:27 | ... ...; | [[[(kind:Expr(14),false,y1)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:49:13:49:14 | access to local variable y1 | [(kind:Expr(14),false,y1)] |
| StructuralComparison.cs:49:13:49:26 | Object y1 = ... | [[(kind:Expr(14),false,y1)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] |
| StructuralComparison.cs:49:18:49:21 | base access | [(kind:Expr(13),false,BaseClass)] |
| StructuralComparison.cs:49:18:49:26 | access to property Prop | [(kind:Expr(17),true,Prop)] |
| StructuralComparison.cs:50:9:50:22 | ... ...; | [[[(kind:Expr(14),false,y2)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:50:13:50:14 | access to local variable y2 | [(kind:Expr(14),false,y2)] |
| StructuralComparison.cs:50:13:50:21 | Object y2 = ... | [[(kind:Expr(14),false,y2)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] |
| StructuralComparison.cs:50:18:50:21 | access to property Prop | [(kind:Expr(17),true,Prop)] |
| StructuralComparison.cs:50:18:50:21 | this access | [(kind:Expr(12),false,DerivedClass)] |
| StructuralComparison.cs:51:9:51:27 | ... ...; | [[[(kind:Expr(14),false,y3)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
| StructuralComparison.cs:51:13:51:14 | access to local variable y3 | [(kind:Expr(14),false,y3)] |
| StructuralComparison.cs:51:13:51:26 | Object y3 = ... | [[(kind:Expr(14),false,y3)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] |
| StructuralComparison.cs:51:18:51:21 | this access | [(kind:Expr(12),false,DerivedClass)] |
| StructuralComparison.cs:51:18:51:26 | access to property Prop | [(kind:Expr(17),true,Prop)] |

View File

@@ -21,4 +21,5 @@ private class StructuralComparisonTest extends StructuralComparisonConfiguration
query predicate same(ControlFlowElement e1, ControlFlowElement e2) {
exists(StructuralComparisonTest sct | sct.same(e1, e2))
}
// query predicate gvn(ControlFlowElement e, Gvn gvn) { gvn = toGvn(e) and e.fromSource() }
query predicate gvn(ControlFlowElement e, Gvn gvn) { gvn = toGvn(e) and e.fromSource() }