Summary: - take advantage more structured attributes in the exported AST - circumvent new format of `if` and `switch` - a few new features/nodes but nothing major there update-submodule: facebook-clang-plugins Reviewed By: mbouaziz, martintrojer Differential Revision: D15453572 fbshipit-source-id: c0c24345fmaster
parent
4697b22fb4
commit
1395d5581d
@ -1 +1 @@
|
||||
Subproject commit eeac101a411b4c82380cbcf326c13fa75f5b2063
|
||||
Subproject commit dc42763b2e43d19518b6d69554a606bb7eaa0f29
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (c) 2019-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
void if_then_return(int x) {
|
||||
int y = 0;
|
||||
if (x == 1234) {
|
||||
y = x;
|
||||
}
|
||||
}
|
||||
|
||||
void if_then(int x) {
|
||||
int y = 0;
|
||||
if (x == 1234) {
|
||||
y = x;
|
||||
}
|
||||
y = 111;
|
||||
}
|
||||
|
||||
void if_then_else_return(int x) {
|
||||
int y = 0;
|
||||
if (x == 1234) {
|
||||
y = 111;
|
||||
} else {
|
||||
y = 222;
|
||||
}
|
||||
}
|
||||
|
||||
void if_then_else(int x) {
|
||||
int y = 0;
|
||||
if (x == 1234) {
|
||||
y = 111;
|
||||
} else {
|
||||
y = 222;
|
||||
}
|
||||
y = 333;
|
||||
}
|
||||
|
||||
void if_then_cond_var() {
|
||||
int y = 0;
|
||||
if (int x = 4) {
|
||||
y = x;
|
||||
}
|
||||
y = 111;
|
||||
}
|
||||
|
||||
void if_then_else_cond_var() {
|
||||
int y = 0;
|
||||
if (int x = 4) {
|
||||
y = x;
|
||||
} else {
|
||||
y = x * 2;
|
||||
}
|
||||
y = 111;
|
||||
}
|
||||
|
||||
void if_then_init(int x) {
|
||||
int y = 0;
|
||||
if (int x = 4; x == 4) {
|
||||
y = x;
|
||||
}
|
||||
}
|
@ -0,0 +1,271 @@
|
||||
/* @generated */
|
||||
digraph cfg {
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_1" [label="1: Start if_then\nFormals: x:int\nLocals: y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_1" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_9" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_2" [label="2: Exit if_then \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_3" [label="3: BinaryOperatorStmt: Assign \n *&y:int=111 [line 20, column 3]\n NULLIFY(&y); [line 20, column 3]\n EXIT_SCOPE(y); [line 20, column 3]\n APPLY_ABSTRACTION; [line 20, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_3" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_2" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_4" [label="4: + \n " ]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_4" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_3" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_5" [label="5: BinaryOperatorStmt: EQ \n n$1=*&x:int [line 17, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_5" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_6" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_5" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_7" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_6" [label="6: Prune (true branch, if) \n PRUNE((n$1 == 1234), true); [line 17, column 7]\n EXIT_SCOPE(n$1); [line 17, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_6" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_8" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_7" [label="7: Prune (false branch, if) \n PRUNE(!(n$1 == 1234), false); [line 17, column 7]\n EXIT_SCOPE(n$1); [line 17, column 7]\n APPLY_ABSTRACTION; [line 17, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_7" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_4" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_8" [label="8: BinaryOperatorStmt: Assign \n n$3=*&x:int [line 18, column 9]\n *&y:int=n$3 [line 18, column 5]\n NULLIFY(&y); [line 18, column 5]\n NULLIFY(&x); [line 18, column 5]\n EXIT_SCOPE(n$3,y,x); [line 18, column 5]\n APPLY_ABSTRACTION; [line 18, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_8" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_4" ;
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_9" [label="9: DeclStmt \n VARIABLE_DECLARED(y:int); [line 16, column 3]\n *&y:int=0 [line 16, column 3]\n NULLIFY(&y); [line 16, column 3]\n EXIT_SCOPE(y); [line 16, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_9" -> "if_then#3243301102387331199.d347686d1797cf6cf5f5b9b986a1e67d_5" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_1" [label="1: Start if_then_cond_var\nFormals: \nLocals: x:int y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_1" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_9" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_2" [label="2: Exit if_then_cond_var \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_3" [label="3: BinaryOperatorStmt: Assign \n *&y:int=111 [line 47, column 3]\n NULLIFY(&y); [line 47, column 3]\n EXIT_SCOPE(y); [line 47, column 3]\n APPLY_ABSTRACTION; [line 47, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_3" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_2" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_4" [label="4: + \n " ]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_4" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_3" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_5" [label="5: Prune (true branch, if) \n n$1=*&x:int [line 44, column 11]\n PRUNE(n$1, true); [line 44, column 11]\n EXIT_SCOPE(n$1); [line 44, column 11]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_5" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_8" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_6" [label="6: Prune (false branch, if) \n n$1=*&x:int [line 44, column 11]\n PRUNE(!n$1, false); [line 44, column 11]\n NULLIFY(&x); [line 44, column 11]\n EXIT_SCOPE(n$1,x); [line 44, column 11]\n APPLY_ABSTRACTION; [line 44, column 11]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_6" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_4" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:int); [line 44, column 7]\n *&x:int=4 [line 44, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_7" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_5" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_7" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_6" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_8" [label="8: BinaryOperatorStmt: Assign \n n$3=*&x:int [line 45, column 9]\n *&y:int=n$3 [line 45, column 5]\n NULLIFY(&x); [line 45, column 5]\n NULLIFY(&y); [line 45, column 5]\n EXIT_SCOPE(n$3,x,y); [line 45, column 5]\n APPLY_ABSTRACTION; [line 45, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_8" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_4" ;
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_9" [label="9: DeclStmt \n VARIABLE_DECLARED(y:int); [line 43, column 3]\n *&y:int=0 [line 43, column 3]\n NULLIFY(&y); [line 43, column 3]\n EXIT_SCOPE(y); [line 43, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_9" -> "if_then_cond_var#9765064652804376901.7ddd70d5a9df7af72d704522a5beba46_7" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_1" [label="1: Start if_then_else\nFormals: x:int\nLocals: y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_1" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_10" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_2" [label="2: Exit if_then_else \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_3" [label="3: BinaryOperatorStmt: Assign \n *&y:int=333 [line 39, column 3]\n NULLIFY(&y); [line 39, column 3]\n EXIT_SCOPE(y); [line 39, column 3]\n APPLY_ABSTRACTION; [line 39, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_3" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_2" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_4" [label="4: + \n " ]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_4" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_3" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_5" [label="5: BinaryOperatorStmt: EQ \n n$1=*&x:int [line 34, column 7]\n NULLIFY(&x); [line 34, column 7]\n EXIT_SCOPE(x); [line 34, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_5" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_6" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_5" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_7" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_6" [label="6: Prune (true branch, if) \n PRUNE((n$1 == 1234), true); [line 34, column 7]\n EXIT_SCOPE(n$1); [line 34, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_6" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_8" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_7" [label="7: Prune (false branch, if) \n PRUNE(!(n$1 == 1234), false); [line 34, column 7]\n EXIT_SCOPE(n$1); [line 34, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_7" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_9" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_8" [label="8: BinaryOperatorStmt: Assign \n *&y:int=111 [line 35, column 5]\n NULLIFY(&y); [line 35, column 5]\n EXIT_SCOPE(y); [line 35, column 5]\n APPLY_ABSTRACTION; [line 35, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_8" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_4" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_9" [label="9: BinaryOperatorStmt: Assign \n *&y:int=222 [line 37, column 5]\n NULLIFY(&y); [line 37, column 5]\n EXIT_SCOPE(y); [line 37, column 5]\n APPLY_ABSTRACTION; [line 37, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_9" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_4" ;
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_10" [label="10: DeclStmt \n VARIABLE_DECLARED(y:int); [line 33, column 3]\n *&y:int=0 [line 33, column 3]\n NULLIFY(&y); [line 33, column 3]\n EXIT_SCOPE(y); [line 33, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_10" -> "if_then_else#3656205175867614205.85ec2e9f625ee4f71821f6eee2969089_5" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_1" [label="1: Start if_then_else_cond_var\nFormals: \nLocals: x:int y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_1" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_10" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_2" [label="2: Exit if_then_else_cond_var \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_3" [label="3: BinaryOperatorStmt: Assign \n *&y:int=111 [line 57, column 3]\n NULLIFY(&y); [line 57, column 3]\n EXIT_SCOPE(y); [line 57, column 3]\n APPLY_ABSTRACTION; [line 57, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_3" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_2" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_4" [label="4: + \n " ]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_4" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_3" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_5" [label="5: Prune (true branch, if) \n n$1=*&x:int [line 52, column 11]\n PRUNE(n$1, true); [line 52, column 11]\n EXIT_SCOPE(n$1); [line 52, column 11]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_5" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_8" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_6" [label="6: Prune (false branch, if) \n n$1=*&x:int [line 52, column 11]\n PRUNE(!n$1, false); [line 52, column 11]\n EXIT_SCOPE(n$1); [line 52, column 11]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_6" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_9" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:int); [line 52, column 7]\n *&x:int=4 [line 52, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_7" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_5" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_7" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_6" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_8" [label="8: BinaryOperatorStmt: Assign \n n$3=*&x:int [line 53, column 9]\n *&y:int=n$3 [line 53, column 5]\n NULLIFY(&x); [line 53, column 5]\n NULLIFY(&y); [line 53, column 5]\n EXIT_SCOPE(n$3,x,y); [line 53, column 5]\n APPLY_ABSTRACTION; [line 53, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_8" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_4" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_9" [label="9: BinaryOperatorStmt: Assign \n n$5=*&x:int [line 55, column 9]\n *&y:int=(n$5 * 2) [line 55, column 5]\n NULLIFY(&x); [line 55, column 5]\n NULLIFY(&y); [line 55, column 5]\n EXIT_SCOPE(n$5,x,y); [line 55, column 5]\n APPLY_ABSTRACTION; [line 55, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_9" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_4" ;
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_10" [label="10: DeclStmt \n VARIABLE_DECLARED(y:int); [line 51, column 3]\n *&y:int=0 [line 51, column 3]\n NULLIFY(&y); [line 51, column 3]\n EXIT_SCOPE(y); [line 51, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_10" -> "if_then_else_cond_var#2787713781872682235.ef4601af9985bcc4fc7e24bbd9a44d0f_7" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_1" [label="1: Start if_then_else_return\nFormals: x:int\nLocals: y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_1" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_10" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_2" [label="2: Exit if_then_else_return \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_3" [label="3: + \n " ]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_3" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_4" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_4" [label="4: between_join_and_exit \n APPLY_ABSTRACTION; [line 25, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_4" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_2" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_5" [label="5: BinaryOperatorStmt: EQ \n n$1=*&x:int [line 25, column 7]\n NULLIFY(&x); [line 25, column 7]\n EXIT_SCOPE(x); [line 25, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_5" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_6" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_5" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_7" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_6" [label="6: Prune (true branch, if) \n PRUNE((n$1 == 1234), true); [line 25, column 7]\n EXIT_SCOPE(n$1); [line 25, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_6" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_8" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_7" [label="7: Prune (false branch, if) \n PRUNE(!(n$1 == 1234), false); [line 25, column 7]\n EXIT_SCOPE(n$1); [line 25, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_7" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_9" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_8" [label="8: BinaryOperatorStmt: Assign \n *&y:int=111 [line 26, column 5]\n NULLIFY(&y); [line 26, column 5]\n EXIT_SCOPE(y); [line 26, column 5]\n APPLY_ABSTRACTION; [line 26, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_8" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_3" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_9" [label="9: BinaryOperatorStmt: Assign \n *&y:int=222 [line 28, column 5]\n NULLIFY(&y); [line 28, column 5]\n EXIT_SCOPE(y); [line 28, column 5]\n APPLY_ABSTRACTION; [line 28, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_9" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_3" ;
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_10" [label="10: DeclStmt \n VARIABLE_DECLARED(y:int); [line 24, column 3]\n *&y:int=0 [line 24, column 3]\n NULLIFY(&y); [line 24, column 3]\n EXIT_SCOPE(y); [line 24, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_10" -> "if_then_else_return#4431567770337235941.d66facc967fa3d7bd91a335f2fa44d33_5" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_1" [label="1: Start if_then_init\nFormals: x:int\nLocals: x:int y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_1" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_10" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_2" [label="2: Exit if_then_init \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_3" [label="3: + \n " ]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_3" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_4" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_4" [label="4: between_join_and_exit \n APPLY_ABSTRACTION; [line 62, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_4" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_2" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_5" [label="5: BinaryOperatorStmt: EQ \n n$1=*&x:int [line 62, column 18]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_5" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_6" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_5" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_7" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_6" [label="6: Prune (true branch, if) \n PRUNE((n$1 == 4), true); [line 62, column 18]\n EXIT_SCOPE(n$1); [line 62, column 18]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_6" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_8" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_7" [label="7: Prune (false branch, if) \n PRUNE(!(n$1 == 4), false); [line 62, column 18]\n NULLIFY(&x); [line 62, column 18]\n EXIT_SCOPE(n$1,x); [line 62, column 18]\n APPLY_ABSTRACTION; [line 62, column 18]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_7" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_3" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_8" [label="8: BinaryOperatorStmt: Assign \n n$3=*&x:int [line 63, column 9]\n *&y:int=n$3 [line 63, column 5]\n NULLIFY(&x); [line 63, column 5]\n NULLIFY(&y); [line 63, column 5]\n EXIT_SCOPE(n$3,x,y); [line 63, column 5]\n APPLY_ABSTRACTION; [line 63, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_8" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_3" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:int); [line 62, column 7]\n *&x:int=4 [line 62, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_9" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_5" ;
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_10" [label="10: DeclStmt \n VARIABLE_DECLARED(y:int); [line 61, column 3]\n *&y:int=0 [line 61, column 3]\n NULLIFY(&y); [line 61, column 3]\n EXIT_SCOPE(y); [line 61, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_10" -> "if_then_init#11608825163312327704.a731baaac66bccf9a8e7312d2dc99b5f_9" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_1" [label="1: Start if_then_return\nFormals: x:int\nLocals: y:int \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_1" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_9" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_2" [label="2: Exit if_then_return \n " color=yellow style=filled]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_3" [label="3: + \n " ]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_3" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_4" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_4" [label="4: between_join_and_exit \n APPLY_ABSTRACTION; [line 10, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_4" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_2" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_5" [label="5: BinaryOperatorStmt: EQ \n n$1=*&x:int [line 10, column 7]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_5" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_6" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_5" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_7" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_6" [label="6: Prune (true branch, if) \n PRUNE((n$1 == 1234), true); [line 10, column 7]\n EXIT_SCOPE(n$1); [line 10, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_6" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_8" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_7" [label="7: Prune (false branch, if) \n PRUNE(!(n$1 == 1234), false); [line 10, column 7]\n EXIT_SCOPE(n$1); [line 10, column 7]\n APPLY_ABSTRACTION; [line 10, column 7]\n " shape="invhouse"]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_7" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_3" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_8" [label="8: BinaryOperatorStmt: Assign \n n$3=*&x:int [line 11, column 9]\n *&y:int=n$3 [line 11, column 5]\n NULLIFY(&y); [line 11, column 5]\n NULLIFY(&x); [line 11, column 5]\n EXIT_SCOPE(n$3,y,x); [line 11, column 5]\n APPLY_ABSTRACTION; [line 11, column 5]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_8" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_3" ;
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_9" [label="9: DeclStmt \n VARIABLE_DECLARED(y:int); [line 9, column 3]\n *&y:int=0 [line 9, column 3]\n NULLIFY(&y); [line 9, column 3]\n EXIT_SCOPE(y); [line 9, column 3]\n " shape="box"]
|
||||
|
||||
|
||||
"if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_9" -> "if_then_return#7560400730320632534.710a386e6459fee25726e9e12804127e_5" ;
|
||||
}
|
Loading…
Reference in new issue