diff options
-rw-r--r-- | test/test6-01.txt | 340 | ||||
-rw-r--r-- | test/test6-03.txt | 10 | ||||
-rw-r--r-- | test/test6-04.txt | 227 | ||||
-rw-r--r-- | test/test6.c | 31 |
4 files changed, 535 insertions, 73 deletions
diff --git a/test/test6-01.txt b/test/test6-01.txt index 5d0b53b..62371d0 100644 --- a/test/test6-01.txt +++ b/test/test6-01.txt @@ -1,4 +1,4 @@ -function_decl func1 test6.c 5:6 +function_decl func1 test6.c 8:6 - isPublic: 1 function_type - function type void_type - function return type @@ -18,13 +18,13 @@ function_decl func1 test6.c 5:6 void_type - value type_decl void <built-in> 0:0 - type name - isAutogenerated: 1 - result_decl test6.c 5:18 - function result + result_decl test6.c 8:18 - function result - isAutogenerated: 1 void_type - result type type_decl void <built-in> 0:0 - type name - isAutogenerated: 1 - isUsed: 1 - parm_decl a test6.c 5:17 - argument + parm_decl a test6.c 8:17 - argument pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -35,13 +35,13 @@ function_decl func1 test6.c 5:6 integer_cst -2147483648 - min value integer_cst 2147483647 - max value integer_cst 64 - parm size - cleanup_point_expr test6.c 7:13 - code + cleanup_point_expr test6.c 10:13 - code expr_stmt - operand convert_expr - expresssion modify_expr - operand indirect_ref - operand - isUsed: 1 - parm_decl a test6.c 5:17 - operand + parm_decl a test6.c 8:17 - operand pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -53,7 +53,7 @@ function_decl func1 test6.c 5:6 integer_cst 2147483647 - max value integer_cst 64 - parm size integer_cst 100 - operand -function_decl func2 test6.c 10:6 +function_decl func2 test6.c 13:6 - isPublic: 1 function_type - function type void_type - function return type @@ -73,13 +73,13 @@ function_decl func2 test6.c 10:6 void_type - value type_decl void <built-in> 0:0 - type name - isAutogenerated: 1 - result_decl test6.c 10:18 - function result + result_decl test6.c 13:18 - function result - isAutogenerated: 1 void_type - result type type_decl void <built-in> 0:0 - type name - isAutogenerated: 1 - isUsed: 1 - parm_decl a test6.c 10:17 - argument + parm_decl a test6.c 13:17 - argument pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -91,9 +91,9 @@ function_decl func2 test6.c 10:6 integer_cst 2147483647 - max value integer_cst 64 - parm size if_stmt - code - eq_expr test6.c 12:10 - condition + eq_expr test6.c 15:10 - condition - isUsed: 1 - parm_decl a test6.c 10:17 - operand + parm_decl a test6.c 13:17 - operand pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -105,14 +105,14 @@ function_decl func2 test6.c 10:6 integer_cst 2147483647 - max value integer_cst 64 - parm size integer_cst 0 - operand - return_expr test6.c 13:9 - then - cleanup_point_expr test6.c 15:17 - else + return_expr test6.c 16:9 - then + cleanup_point_expr test6.c 18:17 - else expr_stmt - operand convert_expr - expresssion modify_expr - operand indirect_ref - operand - isUsed: 1 - parm_decl a test6.c 10:17 - operand + parm_decl a test6.c 13:17 - operand pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -124,7 +124,7 @@ function_decl func2 test6.c 10:6 integer_cst 2147483647 - max value integer_cst 64 - parm size integer_cst 200 - operand -function_decl func3 test6.c 18:6 +function_decl func3 test6.c 21:6 - isPublic: 1 function_type - function type void_type - function return type @@ -144,13 +144,13 @@ function_decl func3 test6.c 18:6 void_type - value type_decl void <built-in> 0:0 - type name - isAutogenerated: 1 - result_decl test6.c 18:18 - function result + result_decl test6.c 21:18 - function result - isAutogenerated: 1 void_type - result type type_decl void <built-in> 0:0 - type name - isAutogenerated: 1 - isUsed: 1 - parm_decl a test6.c 18:17 - argument + parm_decl a test6.c 21:17 - argument pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -163,9 +163,9 @@ function_decl func3 test6.c 18:6 integer_cst 64 - parm size statement_list - code if_stmt - statement - eq_expr test6.c 20:10 - condition + eq_expr test6.c 23:10 - condition - isUsed: 1 - parm_decl a test6.c 18:17 - operand + parm_decl a test6.c 21:17 - operand pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -177,14 +177,14 @@ function_decl func3 test6.c 18:6 integer_cst 2147483647 - max value integer_cst 64 - parm size integer_cst 0 - operand - return_expr test6.c 21:9 - then - cleanup_point_expr test6.c 23:13 - statement + return_expr test6.c 24:9 - then + cleanup_point_expr test6.c 26:13 - statement expr_stmt - operand convert_expr - expresssion modify_expr - operand indirect_ref - operand - isUsed: 1 - parm_decl a test6.c 18:17 - operand + parm_decl a test6.c 21:17 - operand pointer_type - decl type integer_type - nested type - precisionBits: 32 @@ -196,3 +196,301 @@ function_decl func3 test6.c 18:6 integer_cst 2147483647 - max value integer_cst 64 - parm size integer_cst 300 - operand +function_decl func4 test6.c 29:6 +- isPublic: 1 + function_type - function type + void_type - function return type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + void_type - value + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + result_decl test6.c 29:18 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + - isUsed: 1 + parm_decl a test6.c 29:17 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + if_stmt - code + ne_expr - condition + - isUsed: 1 + parm_decl a test6.c 29:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 0 - operand + cleanup_point_expr test6.c 33:17 - then + expr_stmt - operand + convert_expr - expresssion + modify_expr - operand + indirect_ref - operand + - isUsed: 1 + parm_decl a test6.c 29:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 400 - operand +function_decl func5 test6.c 37:6 +- isPublic: 1 + function_type - function type + void_type - function return type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + void_type - value + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + result_decl test6.c 37:18 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + - isUsed: 1 + parm_decl a test6.c 37:17 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + statement_list - code + if_stmt - statement + ne_expr - condition + - isUsed: 1 + parm_decl a test6.c 37:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 0 - operand + cleanup_point_expr test6.c 41:17 - then + expr_stmt - operand + convert_expr - expresssion + modify_expr - operand + indirect_ref - operand + - isUsed: 1 + parm_decl a test6.c 37:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 500 - operand + cleanup_point_expr test6.c 43:13 - statement + expr_stmt - operand + convert_expr - expresssion + modify_expr - operand + indirect_ref - operand + - isUsed: 1 + parm_decl a test6.c 37:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 600 - operand +function_decl func6 test6.c 46:6 +- isPublic: 1 + function_type - function type + void_type - function return type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + void_type - value + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + result_decl test6.c 46:21 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + - isUsed: 1 + parm_decl aptr test6.c 46:17 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + bind_expr test6.c 54:16 - code + statement_list - operand + bind_expr test6.c 52:5 - statement + if_stmt - operand + eq_expr test6.c 48:10 - condition + - isUsed: 1 + parm_decl aptr test6.c 46:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 0 - operand + bind_expr test6.c 51:15 - then + var_decl k test6.c 50:13 - operand + integer_cst 32 - decl size + integer_type - var type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 10 - initial + statement_list - operand + cleanup_point_expr test6.c 50:17 - statement + decl_expr test6.c 50:17 - operand + var_decl k test6.c 50:13 - operand + integer_cst 32 - decl size + integer_type - var type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 10 - initial + return_expr test6.c 51:9 - statement + block - operand + var_decl k test6.c 50:13 - block vars + integer_cst 32 - decl size + integer_type - var type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 10 - initial + block - operand + block - sub block + var_decl k test6.c 50:13 - block vars + integer_cst 32 - decl size + integer_type - var type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 10 - initial + cleanup_point_expr test6.c 54:16 - statement + expr_stmt - operand + convert_expr - expresssion + modify_expr - operand + indirect_ref - operand + - isUsed: 1 + parm_decl aptr test6.c 46:17 - operand + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + integer_cst 700 - operand + block - operand + block - sub block + block - sub block + var_decl k test6.c 50:13 - block vars + integer_cst 32 - decl size + integer_type - var type + - precisionBits: 32 + - signed + type_decl int <built-in> 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 10 - initial diff --git a/test/test6-03.txt b/test/test6-03.txt index 6732621..f0cf435 100644 --- a/test/test6-03.txt +++ b/test/test6-03.txt @@ -1,4 +1,12 @@ test6.c: In function 'void func1(int*)': -test6.c:7:13: warning: Using variable without check for NULL +test6.c:10:13: warning: Using variable without check for NULL *a = 100; ^ +test6.c: In function 'void func5(int*)': +test6.c:43:13: warning: Using variable without check for NULL + *a = 600; + ^ +test6.c: In function 'void func6(int*)': +test6.c:54:16: warning: Using variable without check for NULL + *aptr = 700; + ^ diff --git a/test/test6-04.txt b/test/test6-04.txt index 979c686..7f6281f 100644 --- a/test/test6-04.txt +++ b/test/test6-04.txt @@ -1,54 +1,179 @@ -function_decl func1 -cleanup_point_expr -expr_stmt -convert_expr -modify_expr +function_decl func1: +cleanup_point_expr : a, +expr_stmt : a, +convert_expr : a, +modify_expr : a, test6.c: In function 'void func1(int*)': -test6.c:7:13: warning: Using variable without check for NULL +test6.c:10:13: warning: Using variable without check for NULL *a = 100; ^ -indirect_ref -parm_decl a -pointer_type -integer_type -type_decl int -integer_cst 32 -integer_cst -2147483648 -integer_cst 2147483647 -integer_cst 64 -integer_cst 100 -function_decl func2 -if_stmt -return_expr -cleanup_point_expr -expr_stmt -convert_expr -modify_expr -indirect_ref -parm_decl a -pointer_type -integer_type -type_decl int -integer_cst 32 -integer_cst -2147483648 -integer_cst 2147483647 -integer_cst 64 -integer_cst 200 -function_decl func3 -statement_list -if_stmt -return_expr -cleanup_point_expr -expr_stmt -convert_expr -modify_expr -indirect_ref -parm_decl a -pointer_type -integer_type -type_decl int -integer_cst 32 -integer_cst -2147483648 -integer_cst 2147483647 -integer_cst 64 -integer_cst 300 +indirect_ref : a, +parm_decl a: a, +pointer_type : a, +integer_type : a, +type_decl int: a, +integer_cst 32: a, +integer_cst -2147483648: a, +integer_cst 2147483647: a, +integer_cst 64: a, +integer_cst 100: a, +function_decl func2: +if_stmt : a, +return_expr : a, +cleanup_point_expr : +expr_stmt : +convert_expr : +modify_expr : +indirect_ref : +parm_decl a: +pointer_type : +integer_type : +type_decl int: +integer_cst 32: +integer_cst -2147483648: +integer_cst 2147483647: +integer_cst 64: +integer_cst 200: +function_decl func3: +statement_list : a, +if_stmt : a, +return_expr : a, +cleanup_point_expr : +expr_stmt : +convert_expr : +modify_expr : +indirect_ref : +parm_decl a: +pointer_type : +integer_type : +type_decl int: +integer_cst 32: +integer_cst -2147483648: +integer_cst 2147483647: +integer_cst 64: +integer_cst 300: +function_decl func4: +if_stmt : a, +cleanup_point_expr : +expr_stmt : +convert_expr : +modify_expr : +indirect_ref : +parm_decl a: +pointer_type : +integer_type : +type_decl int: +integer_cst 32: +integer_cst -2147483648: +integer_cst 2147483647: +integer_cst 64: +integer_cst 400: +function_decl func5: +statement_list : a, +if_stmt : a, +cleanup_point_expr : +expr_stmt : +convert_expr : +modify_expr : +indirect_ref : +parm_decl a: +pointer_type : +integer_type : +type_decl int: +integer_cst 32: +integer_cst -2147483648: +integer_cst 2147483647: +integer_cst 64: +integer_cst 500: +cleanup_point_expr : a, +expr_stmt : a, +convert_expr : a, +modify_expr : a, +test6.c: In function 'void func5(int*)': +test6.c:43:13: warning: Using variable without check for NULL + *a = 600; + ^ +indirect_ref : a, +parm_decl a: a, +pointer_type : a, +integer_type : a, +type_decl int: a, +integer_cst 32: a, +integer_cst -2147483648: a, +integer_cst 2147483647: a, +integer_cst 64: a, +integer_cst 600: a, +function_decl func6: +bind_expr : aptr, +statement_list : aptr, +bind_expr : aptr, +if_stmt : aptr, +bind_expr : aptr, +var_decl k: aptr, +integer_cst 32: aptr, +integer_type : aptr, +type_decl int: aptr, +integer_cst 32: aptr, +integer_cst -2147483648: aptr, +integer_cst 2147483647: aptr, +integer_cst 10: aptr, +statement_list : aptr, +cleanup_point_expr : aptr, +decl_expr : aptr, +var_decl k: aptr, +integer_cst 32: aptr, +integer_type : aptr, +type_decl int: aptr, +integer_cst 32: aptr, +integer_cst -2147483648: aptr, +integer_cst 2147483647: aptr, +integer_cst 10: aptr, +return_expr : aptr, +block : aptr, +var_decl k: aptr, +integer_cst 32: aptr, +integer_type : aptr, +type_decl int: aptr, +integer_cst 32: aptr, +integer_cst -2147483648: aptr, +integer_cst 2147483647: aptr, +integer_cst 10: aptr, +block : +block : +var_decl k: +integer_cst 32: +integer_type : +type_decl int: +integer_cst 32: +integer_cst -2147483648: +integer_cst 2147483647: +integer_cst 10: +cleanup_point_expr : aptr, +expr_stmt : aptr, +convert_expr : aptr, +modify_expr : aptr, +test6.c: In function 'void func6(int*)': +test6.c:54:16: warning: Using variable without check for NULL + *aptr = 700; + ^ +indirect_ref : aptr, +parm_decl aptr: aptr, +pointer_type : aptr, +integer_type : aptr, +type_decl int: aptr, +integer_cst 32: aptr, +integer_cst -2147483648: aptr, +integer_cst 2147483647: aptr, +integer_cst 64: aptr, +integer_cst 700: aptr, +block : aptr, +block : aptr, +block : aptr, +var_decl k: aptr, +integer_cst 32: aptr, +integer_type : aptr, +type_decl int: aptr, +integer_cst 32: aptr, +integer_cst -2147483648: aptr, +integer_cst 2147483647: aptr, +integer_cst 10: aptr, diff --git a/test/test6.c b/test/test6.c index 06dc7df..05c7738 100644 --- a/test/test6.c +++ b/test/test6.c @@ -1,6 +1,9 @@ void func1(int *a); void func2(int *a); void func3(int *a); +void func4(int *a); +void func5(int *a); +void func6(int *a); void func1(int *a) { @@ -22,3 +25,31 @@ void func3(int *a) *a = 300; } + +void func4(int *a) +{ + if (a) + { + *a = 400; + } +} + +void func5(int *a) +{ + if (a) + { + *a = 500; + } + *a = 600; +} + +void func6(int *aptr) +{ + if (!aptr) + { + int k = 10; + return; + } + + *aptr = 700; +} |