summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-18 00:07:54 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-18 00:07:54 +0300
commit5d40bf6be5aa4652c20a6520ceec452533ce9ee5 (patch)
tree4cca4a6e714412121a974e88166fb01bb4b9855a
parentca7fb26da9b7c4d3d32ebd7739b937ccf591167b (diff)
downloadparanucker-5d40bf6be5aa4652c20a6520ceec452533ce9ee5.tar.gz
paranucker-5d40bf6be5aa4652c20a6520ceec452533ce9ee5.tar.bz2
paranucker-5d40bf6be5aa4652c20a6520ceec452533ce9ee5.tar.xz
paranucker-5d40bf6be5aa4652c20a6520ceec452533ce9ee5.zip
Add test8.
-rw-r--r--test/Makefile13
-rw-r--r--test/test8-01.txt831
-rw-r--r--test/test8-02.txt7
-rw-r--r--test/test8-03.txt205
-rw-r--r--test/test8-04.txt12
-rw-r--r--test/test8.cpp77
6 files changed, 1144 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile
index 91b3943..d626a6f 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -6,7 +6,8 @@ TESTS4 = test4-01 test4-02 test4-03
TESTS5 = test5-01 test5-02 test5-03 test5-04 test5-05
TESTS6 = test6-01 test6-02 test6-03 test6-04
TESTS7 = test7-01 test7-02 test7-03 test7-04 test7-05
-ALLTESTS = test1 test2 test3 test4 test5 test6 test7 ${TESTS1} ${TESTS2} ${TESTS3} ${TESTS4} ${TESTS5} ${TESTS6} ${TESTS7}
+TESTS8 = test8-01 test8-02 test8-03 test8-04
+ALLTESTS = test1 test2 test3 test4 test5 test6 test7 test8 ${TESTS1} ${TESTS2} ${TESTS3} ${TESTS4} ${TESTS5} ${TESTS6} ${TESTS7} ${TESTS8}
.PHONY: ${ALLTESTS} ${CRASHES} all crashes
@@ -85,6 +86,16 @@ test7-04:
test7-05:
$(call CMD,dumpnullpointers,test7.cpp,test7-05.txt)
+test8: ${TESTS8}
+test8-01:
+ $(call CMD,dump,test8.cpp,test8-01.txt)
+test8-02:
+ $(call CMD,findargs,test8.cpp,test8-02.txt)
+test8-03:
+ $(call CMD,dumpnullpointers,test8.cpp,test8-03.txt)
+test8-04:
+ $(call CMD,detectnullpointers,test8.cpp,test8-04.txt)
+
crashtest1:
$(call CMD,dump,crashtest1.h,crashtest1-01.txt)
crashtest2:
diff --git a/test/test8-01.txt b/test/test8-01.txt
new file mode 100644
index 0000000..3e12e2b
--- /dev/null
+++ b/test/test8-01.txt
@@ -0,0 +1,831 @@
+function_decl func1 test8.cpp 5: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 6:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test8.cpp 5:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test8.cpp 5:21 - 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 test8.cpp 7:9 - statement
+ eq_expr test8.cpp 7:14 - condition
+ - isUsed: 1
+ parm_decl ptr1 test8.cpp 5:21 - 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
+ return_expr test8.cpp 8:13 - then
+ cleanup_point_expr test8.cpp 10:20 - statement
+ expr_stmt test8.cpp 10:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr1 test8.cpp 5:21 - ref
+ 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 100 - operand
+function_decl func2 test8.cpp 13: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 14:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl this test8.cpp 13:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr2 test8.cpp 13:21 - 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 test8.cpp 15:9 - statement
+ eq_expr test8.cpp 15:14 - condition
+ - isUsed: 1
+ parm_decl ptr2 test8.cpp 13:21 - 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 test8.cpp 17:18 - then
+ expr_stmt test8.cpp 17:18 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test8.cpp 17:13 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test8.cpp 13:25 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 0 - operand
+ cleanup_point_expr test8.cpp 20:20 - statement
+ expr_stmt test8.cpp 20:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr2 test8.cpp 13:21 - ref
+ 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 200 - operand
+function_decl func3 test8.cpp 23: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 24:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test8.cpp 23:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr3 test8.cpp 23:21 - 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 test8.cpp 25:9 - statement
+ ne_expr - condition
+ - isUsed: 1
+ parm_decl ptr3 test8.cpp 23:21 - 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
+ return_expr test8.cpp 26:13 - then
+ cleanup_point_expr test8.cpp 28:20 - statement
+ expr_stmt test8.cpp 28:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr3 test8.cpp 23:21 - ref
+ 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 300 - operand
+function_decl func4 test8.cpp 31: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 32:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl this test8.cpp 31:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr4 test8.cpp 31:21 - 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 test8.cpp 33:9 - statement
+ ne_expr - condition
+ - isUsed: 1
+ parm_decl ptr4 test8.cpp 31:21 - 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 test8.cpp 34:18 - then
+ expr_stmt test8.cpp 34:18 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test8.cpp 34:13 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test8.cpp 31:25 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 0 - operand
+ return_expr test8.cpp 36:13 - else
+ cleanup_point_expr test8.cpp 38:20 - statement
+ expr_stmt test8.cpp 38:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr4 test8.cpp 31:21 - ref
+ 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 test8.cpp 41: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 42:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test8.cpp 41:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr5 test8.cpp 41:21 - 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 test8.cpp 43:9 - statement
+ eq_expr test8.cpp 43:14 - condition
+ - isUsed: 1
+ parm_decl ptr5 test8.cpp 41:21 - 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
+ return_expr test8.cpp 44:13 - then
+ cleanup_point_expr test8.cpp 46:24 - else
+ expr_stmt test8.cpp 46:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr5 test8.cpp 41:21 - ref
+ 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 501 - operand
+ cleanup_point_expr test8.cpp 48:20 - statement
+ expr_stmt test8.cpp 48:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr5 test8.cpp 41:21 - ref
+ 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
+function_decl func6 test8.cpp 51: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 52:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test8.cpp 51:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr6 test8.cpp 51:21 - 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 test8.cpp 53:9 - statement
+ ne_expr - condition
+ - isUsed: 1
+ parm_decl ptr6 test8.cpp 51:21 - 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
+ if_stmt test8.cpp 55:13 - then
+ eq_expr test8.cpp 55:18 - condition
+ - isUsed: 1
+ parm_decl ptr6 test8.cpp 51:21 - 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
+ return_expr test8.cpp 56:17 - then
+ cleanup_point_expr test8.cpp 59:20 - statement
+ expr_stmt test8.cpp 59:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr6 test8.cpp 51:21 - ref
+ 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 func7 test8.cpp 62: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 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ 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 test8.cpp 63:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test8.cpp 62:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test8.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test8.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test8.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr7 test8.cpp 62:21 - 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 test8.cpp 64:9 - statement
+ eq_expr test8.cpp 64:14 - condition
+ - isUsed: 1
+ parm_decl ptr7 test8.cpp 62:21 - 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
+ return_expr test8.cpp 66:13 - then
+ statement_list - else
+ if_stmt test8.cpp 70:13 - statement
+ eq_expr test8.cpp 70:18 - condition
+ - isUsed: 1
+ parm_decl ptr7 test8.cpp 62:21 - 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
+ return_expr test8.cpp 71:17 - then
+ cleanup_point_expr test8.cpp 72:24 - statement
+ expr_stmt test8.cpp 72:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr7 test8.cpp 62:21 - ref
+ 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 701 - operand
+ cleanup_point_expr test8.cpp 75:20 - statement
+ expr_stmt test8.cpp 75:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl ptr7 test8.cpp 62:21 - ref
+ 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
diff --git a/test/test8-02.txt b/test/test8-02.txt
new file mode 100644
index 0000000..d04253f
--- /dev/null
+++ b/test/test8-02.txt
@@ -0,0 +1,7 @@
+func1: pointer_type ptr1,
+func2: pointer_type ptr2,
+func3: pointer_type ptr3,
+func4: pointer_type ptr4,
+func5: pointer_type ptr5,
+func6: pointer_type ptr6,
+func7: pointer_type ptr7,
diff --git a/test/test8-03.txt b/test/test8-03.txt
new file mode 100644
index 0000000..3426b01
--- /dev/null
+++ b/test/test8-03.txt
@@ -0,0 +1,205 @@
+function_decl func1:
+statement_list : ptr1,
+if_stmt : ptr1,
+return_expr : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt :
+convert_expr :
+modify_expr :
+indirect_ref :
+parm_decl ptr1:
+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:
+statement_list : ptr2,
+if_stmt : ptr2,
+cleanup_point_expr : ptr2,
+expr_stmt : ptr2,
+convert_expr : ptr2,
+modify_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 0: ptr2,
+cleanup_point_expr : ptr2,
+expr_stmt : ptr2,
+convert_expr : ptr2,
+modify_expr : ptr2,
+test8.cpp: In member function 'void Object1::func2(int*)':
+test8.cpp:20:20: warning: Using parameter 'ptr2' without checking for null pointer
+ *ptr2 = 200;
+ ^
+indirect_ref : 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 200: ptr2,
+function_decl func3:
+statement_list : ptr3,
+if_stmt : ptr3,
+return_expr :
+cleanup_point_expr : ptr3,
+expr_stmt : ptr3,
+convert_expr : ptr3,
+modify_expr : ptr3,
+test8.cpp: In member function 'void Object1::func3(int*)':
+test8.cpp:28:20: warning: Using parameter 'ptr3' without checking for null pointer
+ *ptr3 = 300;
+ ^
+indirect_ref : ptr3,
+parm_decl ptr3: ptr3,
+pointer_type : ptr3,
+integer_type : ptr3,
+type_decl int: ptr3,
+integer_cst 32: ptr3,
+integer_cst -2147483648: ptr3,
+integer_cst 2147483647: ptr3,
+integer_cst 64: ptr3,
+integer_cst 300: ptr3,
+function_decl func4:
+statement_list : ptr4,
+if_stmt : ptr4,
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_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:
+integer_cst 0:
+return_expr : ptr4,
+cleanup_point_expr : ptr4,
+expr_stmt :
+convert_expr :
+modify_expr :
+indirect_ref :
+parm_decl ptr4:
+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 : ptr5,
+if_stmt : ptr5,
+return_expr : ptr5,
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+indirect_ref :
+parm_decl ptr5:
+pointer_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 64:
+integer_cst 501:
+cleanup_point_expr : ptr5,
+expr_stmt :
+convert_expr :
+modify_expr :
+indirect_ref :
+parm_decl ptr5:
+pointer_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 64:
+integer_cst 500:
+function_decl func6:
+statement_list : ptr6,
+if_stmt : ptr6,
+if_stmt :
+return_expr :
+cleanup_point_expr : ptr6,
+expr_stmt : ptr6,
+convert_expr : ptr6,
+modify_expr : ptr6,
+test8.cpp: In member function 'void Object1::func6(int*)':
+test8.cpp:59:20: warning: Using parameter 'ptr6' without checking for null pointer
+ *ptr6 = 600;
+ ^
+indirect_ref : ptr6,
+parm_decl ptr6: ptr6,
+pointer_type : ptr6,
+integer_type : ptr6,
+type_decl int: ptr6,
+integer_cst 32: ptr6,
+integer_cst -2147483648: ptr6,
+integer_cst 2147483647: ptr6,
+integer_cst 64: ptr6,
+integer_cst 600: ptr6,
+function_decl func7:
+statement_list : ptr7,
+if_stmt : ptr7,
+return_expr : ptr7,
+statement_list :
+if_stmt :
+return_expr :
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+indirect_ref :
+parm_decl ptr7:
+pointer_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 64:
+integer_cst 701:
+cleanup_point_expr : ptr7,
+expr_stmt :
+convert_expr :
+modify_expr :
+indirect_ref :
+parm_decl ptr7:
+pointer_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 64:
+integer_cst 700:
diff --git a/test/test8-04.txt b/test/test8-04.txt
new file mode 100644
index 0000000..d4ae038
--- /dev/null
+++ b/test/test8-04.txt
@@ -0,0 +1,12 @@
+test8.cpp: In member function 'void Object1::func2(int*)':
+test8.cpp:20:20: warning: Using parameter 'ptr2' without checking for null pointer
+ *ptr2 = 200;
+ ^
+test8.cpp: In member function 'void Object1::func3(int*)':
+test8.cpp:28:20: warning: Using parameter 'ptr3' without checking for null pointer
+ *ptr3 = 300;
+ ^
+test8.cpp: In member function 'void Object1::func6(int*)':
+test8.cpp:59:20: warning: Using parameter 'ptr6' without checking for null pointer
+ *ptr6 = 600;
+ ^
diff --git a/test/test8.cpp b/test/test8.cpp
new file mode 100644
index 0000000..6b937f1
--- /dev/null
+++ b/test/test8.cpp
@@ -0,0 +1,77 @@
+class Object1
+{
+ int k;
+
+ void func1(int *ptr1)
+ {
+ if (!ptr1)
+ return;
+
+ *ptr1 = 100;
+ }
+
+ void func2(int *ptr2)
+ {
+ if (!ptr2)
+ {
+ k = 0;
+ }
+
+ *ptr2 = 200;
+ }
+
+ void func3(int *ptr3)
+ {
+ if (ptr3)
+ return;
+
+ *ptr3 = 300;
+ }
+
+ void func4(int *ptr4)
+ {
+ if (ptr4)
+ k = 0;
+ else
+ return;
+
+ *ptr4 = 400;
+ }
+
+ void func5(int *ptr5)
+ {
+ if (!ptr5)
+ return;
+ else
+ *ptr5 = 501;
+
+ *ptr5 = 500;
+ }
+
+ void func6(int *ptr6)
+ {
+ if (ptr6)
+ {
+ if (!ptr6)
+ return;
+ }
+
+ *ptr6 = 600;
+ }
+
+ void func7(int *ptr7)
+ {
+ if (!ptr7)
+ {
+ return;
+ }
+ else
+ {
+ if (!ptr7)
+ return;
+ *ptr7 = 701;
+ }
+
+ *ptr7 = 700;
+ }
+};