diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-20 20:57:54 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-20 20:57:54 +0300 |
commit | 792ca12e0862a95d6a9bb9e9095d03a7553ba899 (patch) | |
tree | 46bc87b62bdaf9ebb7097778ddb383ef2e940ece | |
parent | 55b526b5957de07cea7f89e345fda0277266e485 (diff) | |
download | paranucker-792ca12e0862a95d6a9bb9e9095d03a7553ba899.tar.gz paranucker-792ca12e0862a95d6a9bb9e9095d03a7553ba899.tar.bz2 paranucker-792ca12e0862a95d6a9bb9e9095d03a7553ba899.tar.xz paranucker-792ca12e0862a95d6a9bb9e9095d03a7553ba899.zip |
Add test 11. Update test results.
-rw-r--r-- | test/Makefile | 13 | ||||
-rw-r--r-- | test/test09-03.txt | 150 | ||||
-rw-r--r-- | test/test10-03.txt | 70 | ||||
-rw-r--r-- | test/test11-01.txt | 317 | ||||
-rw-r--r-- | test/test11-02.txt | 2 | ||||
-rw-r--r-- | test/test11-03.txt | 117 | ||||
-rw-r--r-- | test/test11-04.txt | 7 | ||||
-rw-r--r-- | test/test11.cpp | 31 |
8 files changed, 596 insertions, 111 deletions
diff --git a/test/Makefile b/test/Makefile index 166a3c5..c908d6e 100644 --- a/test/Makefile +++ b/test/Makefile @@ -9,7 +9,8 @@ TESTS07 = test07-01 test07-02 test07-03 test07-04 test07-05 TESTS08 = test08-01 test08-02 test08-03 test08-04 TESTS09 = test09-01 test09-02 test09-03 test09-04 TESTS10 = test10-01 test10-02 test10-03 test10-04 -ALLTESTS = test01 test02 test03 test04 test05 test06 test07 test08 test09 test10 ${TESTS01} ${TESTS02} ${TESTS03} ${TESTS04} ${TESTS05} ${TESTS06} ${TESTS07} ${TESTS08} ${TESTS09} ${TESTS10} +TESTS11 = test11-01 test11-02 test11-03 test11-04 +ALLTESTS = test01 test02 test03 test04 test05 test06 test07 test08 test09 test10 test11 ${TESTS01} ${TESTS02} ${TESTS03} ${TESTS04} ${TESTS05} ${TESTS06} ${TESTS07} ${TESTS08} ${TESTS09} ${TESTS10} ${TESTS11} .PHONY: ${ALLTESTS} ${CRASHES} all crashes @@ -118,6 +119,16 @@ test10-03: test10-04: $(call CMD,detectnullpointers,test10.cpp,test10-04.txt) +test11: ${TESTS11} +test11-01: + $(call CMD,dump,test11.cpp,test11-01.txt) +test11-02: + $(call CMD,findargs,test11.cpp,test11-02.txt) +test11-03: + $(call CMD,dumpnullpointers,test11.cpp,test11-03.txt) +test11-04: + $(call CMD,detectnullpointers,test11.cpp,test11-04.txt) + crashtest01: $(call CMD,dump,crashtest01.h,crashtest01-01.txt) crashtest02: diff --git a/test/test09-03.txt b/test/test09-03.txt index 031f42a..b336ee1 100644 --- a/test/test09-03.txt +++ b/test/test09-03.txt @@ -12,16 +12,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +eq_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, return_expr : ptr1, ptr2, cleanup_point_expr : ptr1, ptr2, expr_stmt : @@ -65,16 +65,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +eq_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, return_expr : ptr1, ptr2, cleanup_point_expr : expr_stmt : @@ -269,16 +269,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -ne_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +ne_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, return_expr : ptr1, ptr2, cleanup_point_expr : ptr1, ptr2, expr_stmt : ptr2, @@ -326,16 +326,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -ne_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +ne_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, return_expr : ptr1, ptr2, cleanup_point_expr : ptr2, expr_stmt : ptr2, @@ -627,16 +627,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +eq_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, bind_expr : ptr1, ptr2, var_decl k: ptr1, ptr2, integer_cst 32: ptr1, ptr2, @@ -723,16 +723,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -ne_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +ne_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, bind_expr : ptr1, ptr2, var_decl k: ptr1, ptr2, integer_cst 32: ptr1, ptr2, @@ -821,21 +821,21 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -component_ref : ptr1, ptr2, -indirect_ref : ptr1, ptr2, -nop_expr : ptr1, ptr2, -parm_decl this: ptr1, ptr2, -pointer_type : ptr1, ptr2, -record_type : ptr1, ptr2, -type_decl Object1: ptr1, ptr2, -field_decl k: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -type_decl Object1: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -field_decl k: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst 10: ptr1, ptr2, +eq_expr : ptr2, +component_ref : ptr2, +indirect_ref : ptr2, +nop_expr : ptr2, +parm_decl this: ptr2, +pointer_type : ptr2, +record_type : ptr2, +type_decl Object1: ptr2, +field_decl k: ptr2, +integer_cst 32: ptr2, +type_decl Object1: ptr2, +integer_cst 64: ptr2, +field_decl k: ptr2, +integer_cst 32: ptr2, +integer_cst 10: ptr2, cleanup_point_expr : ptr1, ptr2, expr_stmt : ptr1, ptr2, convert_expr : ptr1, ptr2, diff --git a/test/test10-03.txt b/test/test10-03.txt index 21bee41..9d1bf9d 100644 --- a/test/test10-03.txt +++ b/test/test10-03.txt @@ -314,16 +314,16 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, +eq_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, return_expr : ptr1, ptr2, cleanup_point_expr : expr_stmt : @@ -394,31 +394,31 @@ integer_cst -2147483648: ptr1, ptr2, integer_cst 2147483647: ptr1, ptr2, integer_cst 64: ptr1, ptr2, integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -parm_decl ptr2: ptr1, ptr2, -pointer_type : ptr1, ptr2, -integer_type : ptr1, ptr2, -type_decl int: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -integer_cst -2147483648: ptr1, ptr2, -integer_cst 2147483647: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -integer_cst 0: ptr1, ptr2, -eq_expr : ptr1, ptr2, -component_ref : ptr1, ptr2, -indirect_ref : ptr1, ptr2, -nop_expr : ptr1, ptr2, -parm_decl this: ptr1, ptr2, -pointer_type : ptr1, ptr2, -record_type : ptr1, ptr2, -type_decl Object1: ptr1, ptr2, -field_decl k: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -type_decl Object1: ptr1, ptr2, -integer_cst 64: ptr1, ptr2, -field_decl k: ptr1, ptr2, -integer_cst 32: ptr1, ptr2, -var_decl c: ptr1, ptr2, +eq_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +integer_type : ptr2, +type_decl int: ptr2, +integer_cst 32: ptr2, +integer_cst -2147483648: ptr2, +integer_cst 2147483647: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, +eq_expr : +component_ref : +indirect_ref : +nop_expr : +parm_decl this: +pointer_type : +record_type : +type_decl Object1: +field_decl k: +integer_cst 32: +type_decl Object1: +integer_cst 64: +field_decl k: +integer_cst 32: +var_decl c: cleanup_point_expr : ptr1, ptr2, expr_stmt : ptr1, ptr2, convert_expr : ptr1, ptr2, diff --git a/test/test11-01.txt b/test/test11-01.txt new file mode 100644 index 0000000..f89c71a --- /dev/null +++ b/test/test11-01.txt @@ -0,0 +1,317 @@ +function_decl func1 test11.cpp 11:10 +- isPublic: 1 + method_type - function type + void_type - method return type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + record_type - method base type + type_decl Object1 test11.cpp 7:7 - type name + - isAutogenerated: 1 + field_decl k test11.cpp 9:9 - field + - signed + integer_cst 32 - decl size + type_decl Object1 test11.cpp 8:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test11.cpp 7:7 - type name + - isAutogenerated: 1 + field_decl k test11.cpp 9:9 - field + - signed + integer_cst 32 - decl size + type_decl Object1 test11.cpp 8:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + tree_list - chain + void_type - value + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + result_decl test11.cpp 12:5 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl this test11.cpp 11:40 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test11.cpp 7:7 - type name + - isAutogenerated: 1 + field_decl k test11.cpp 9:9 - field + - signed + integer_cst 32 - decl size + type_decl Object1 test11.cpp 8:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test11.cpp 11:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + parm_decl ptr2 test11.cpp 11:36 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + if_stmt test11.cpp 13:9 - statement + truth_orif_expr test11.cpp 13:19 - condition + eq_expr test11.cpp 13:14 - operand + - isUsed: 1 + parm_decl ptr1 test11.cpp 11:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + eq_expr test11.cpp 13:32 - operand + component_ref test11.cpp 13:28 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test11.cpp 11:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + integer_cst 1 - operand + return_expr test11.cpp 15:13 - then + cleanup_point_expr test11.cpp 18:24 - statement + expr_stmt test11.cpp 18:24 - operand + convert_expr - expresssion + modify_expr - operand + component_ref test11.cpp 18:15 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test11.cpp 11:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + integer_cst 100 - operand +function_decl func2 test11.cpp 21:10 +- isPublic: 1 + method_type - function type + void_type - method return type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + record_type - method base type + type_decl Object1 test11.cpp 7:7 - type name + - isAutogenerated: 1 + field_decl k test11.cpp 9:9 - field + - signed + integer_cst 32 - decl size + type_decl Object1 test11.cpp 8:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test11.cpp 7:7 - type name + - isAutogenerated: 1 + field_decl k test11.cpp 9:9 - field + - signed + integer_cst 32 - decl size + type_decl Object1 test11.cpp 8:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + tree_list - chain + void_type - value + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + result_decl test11.cpp 22:5 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl this test11.cpp 21:40 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test11.cpp 7:7 - type name + - isAutogenerated: 1 + field_decl k test11.cpp 9:9 - field + - signed + integer_cst 32 - decl size + type_decl Object1 test11.cpp 8:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test11.cpp 21:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + parm_decl ptr2 test11.cpp 21:36 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + if_stmt test11.cpp 23:9 - statement + truth_andif_expr test11.cpp 23:18 - condition + ne_expr - operand + - isUsed: 1 + parm_decl ptr1 test11.cpp 21:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + eq_expr test11.cpp 23:31 - operand + component_ref test11.cpp 23:27 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test11.cpp 21:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + integer_cst 1 - operand + statement_list - then + cleanup_point_expr test11.cpp 25:28 - statement + expr_stmt test11.cpp 25:28 - operand + convert_expr - expresssion + modify_expr - operand + component_ref test11.cpp 25:19 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test11.cpp 21:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + integer_cst 100 - operand + return_expr test11.cpp 26:13 - statement + cleanup_point_expr test11.cpp 29:24 - statement + expr_stmt test11.cpp 29:24 - operand + convert_expr - expresssion + modify_expr - operand + component_ref test11.cpp 29:15 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test11.cpp 21:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test11.cpp 1:7 - type name + - isAutogenerated: 1 + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + type_decl Data1 test11.cpp 2:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test11.cpp 4:13 - field + - signed + integer_cst 32 - decl size + integer_cst 200 - operand diff --git a/test/test11-02.txt b/test/test11-02.txt new file mode 100644 index 0000000..3390e93 --- /dev/null +++ b/test/test11-02.txt @@ -0,0 +1,2 @@ +func1: pointer_type ptr1, pointer_type ptr2, +func2: pointer_type ptr1, pointer_type ptr2, diff --git a/test/test11-03.txt b/test/test11-03.txt new file mode 100644 index 0000000..5e7e1d1 --- /dev/null +++ b/test/test11-03.txt @@ -0,0 +1,117 @@ +function_decl func1: +statement_list : ptr1, ptr2, +if_stmt : ptr1, ptr2, +truth_orif_expr : ptr1, ptr2, +eq_expr : ptr1, ptr2, +parm_decl ptr1: ptr1, ptr2, +pointer_type : ptr1, ptr2, +record_type : ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +integer_cst 0: ptr1, ptr2, +eq_expr : ptr2, +component_ref : ptr2, +indirect_ref : ptr2, +parm_decl ptr1: ptr2, +pointer_type : ptr2, +record_type : ptr2, +type_decl Data1: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +type_decl Data1: ptr2, +integer_cst 64: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +integer_cst 1: ptr2, +return_expr : ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr2, +convert_expr : ptr2, +modify_expr : ptr2, +component_ref : ptr2, +indirect_ref : ptr2, +parm_decl ptr1: ptr2, +pointer_type : ptr2, +record_type : ptr2, +type_decl Data1: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +type_decl Data1: ptr2, +integer_cst 64: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +integer_cst 100: ptr2, +function_decl func2: +statement_list : ptr1, ptr2, +if_stmt : ptr1, ptr2, +truth_andif_expr : ptr1, ptr2, +ne_expr : ptr1, ptr2, +parm_decl ptr1: ptr1, ptr2, +pointer_type : ptr1, ptr2, +record_type : ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +integer_cst 0: ptr1, ptr2, +eq_expr : ptr2, +component_ref : ptr2, +indirect_ref : ptr2, +parm_decl ptr1: ptr2, +pointer_type : ptr2, +record_type : ptr2, +type_decl Data1: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +type_decl Data1: ptr2, +integer_cst 64: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +integer_cst 1: ptr2, +statement_list : ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +convert_expr : ptr1, ptr2, +modify_expr : ptr1, ptr2, +component_ref : ptr1, ptr2, +test11.cpp: In member function 'void Object1::func2(Data1*, Data1*)': +test11.cpp:25:19: warning: Using parameter 'ptr1' without checking for null pointer + ptr1->val = 100; + ^ +indirect_ref : ptr1, ptr2, +parm_decl ptr1: ptr1, ptr2, +pointer_type : ptr1, ptr2, +record_type : ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +integer_cst 100: ptr1, ptr2, +return_expr : ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +convert_expr : ptr1, ptr2, +modify_expr : ptr1, ptr2, +component_ref : ptr1, ptr2, +test11.cpp:29:15: warning: Using parameter 'ptr1' without checking for null pointer + ptr1->val = 200; + ^ +indirect_ref : ptr1, ptr2, +parm_decl ptr1: ptr1, ptr2, +pointer_type : ptr1, ptr2, +record_type : ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +integer_cst 200: ptr1, ptr2, diff --git a/test/test11-04.txt b/test/test11-04.txt new file mode 100644 index 0000000..cd4bfc0 --- /dev/null +++ b/test/test11-04.txt @@ -0,0 +1,7 @@ +test11.cpp: In member function 'void Object1::func2(Data1*, Data1*)': +test11.cpp:25:19: warning: Using parameter 'ptr1' without checking for null pointer + ptr1->val = 100; + ^ +test11.cpp:29:15: warning: Using parameter 'ptr1' without checking for null pointer + ptr1->val = 200; + ^ diff --git a/test/test11.cpp b/test/test11.cpp new file mode 100644 index 0000000..4debb95 --- /dev/null +++ b/test/test11.cpp @@ -0,0 +1,31 @@ +class Data1 +{ + public: + int val; +}; + +class Object1 +{ + int k; + + void func1(Data1 *ptr1, Data1 *ptr2) + { + if (!ptr1 || ptr1->val == 1) + { + return; + } + + ptr1->val = 100; + } + + void func2(Data1 *ptr1, Data1 *ptr2) + { + if (ptr1 && ptr1->val == 1) + { + ptr1->val = 100; + return; + } + + ptr1->val = 200; + } +}; |