summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-08 16:17:05 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-08 16:17:05 +0300
commitf21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39 (patch)
treee1f7851756b8fb91263b13a8a38030b2d29aa7e2 /test
parentf44485b4aa4ff2ddbb648704010ce9c4492de0d0 (diff)
downloadparanucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.tar.gz
paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.tar.bz2
paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.tar.xz
paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.zip
Add test 33.
Diffstat (limited to 'test')
-rw-r--r--test/Makefile15
-rw-r--r--test/test33-01.txt1482
-rw-r--r--test/test33-02.txt4
-rw-r--r--test/test33-03.txt475
-rw-r--r--test/test33-04.txt15
-rw-r--r--test/test33-05.txt15
-rw-r--r--test/test33.cpp95
7 files changed, 2100 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile
index 426a163..062b340 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -36,7 +36,8 @@ TESTS29 = $(call TEST,29,5)
TESTS30 = $(call TEST,30,5)
TESTS31 = $(call TEST,31,5)
TESTS32 = $(call TEST,32,5)
-TESTNUMBERS = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+TESTS33 = $(call TEST,33,5)
+TESTNUMBERS = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
ALLTESTS = $(foreach num,$(TESTNUMBERS),test$(num) ${TESTS$(num)})
.PHONY: ${ALLTESTS} ${CRASHES} all crashes
@@ -395,6 +396,18 @@ test32-04:
test32-05:
$(call CMDXX,detectnullpointers,test32.cpp,test32-05.txt,-O2 -std=c++0x -Wall -Wnonnull)
+test33: ${TESTS33}
+test33-01:
+ $(call CMDXX,dump,test33.cpp,test33-01.txt,-std=c++0x)
+test33-02:
+ $(call CMDXX,findargs,test33.cpp,test33-02.txt,-std=c++0x)
+test33-03:
+ $(call CMDXX,dumpnullpointers,test33.cpp,test33-03.txt,-std=c++0x)
+test33-04:
+ $(call CMDXX,detectnullpointers,test33.cpp,test33-04.txt,-std=c++0x)
+test33-05:
+ $(call CMDXX,detectnullpointers,test33.cpp,test33-05.txt,-O2 -std=c++0x -Wall -Wnonnull)
+
crashtest01:
$(call CMDXX,dump,crashtest01.h,crashtest01-01.txt)
crashtest02:
diff --git a/test/test33-01.txt b/test/test33-01.txt
new file mode 100644
index 0000000..0c2a5ec
--- /dev/null
+++ b/test/test33-01.txt
@@ -0,0 +1,1482 @@
+function_decl getData1 test33.cpp 23:12
+- isPublic: 1
+ method_type - function type
+ pointer_type - method return type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ record_type - method base type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test33.cpp 24:5 - function result
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl this test33.cpp 23:21 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ return_expr test33.cpp 25:16 - code
+ init_expr - operand
+ result_decl test33.cpp 24:5 - operand
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ component_ref test33.cpp 25:16 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test33.cpp 23:21 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+function_decl func1 test33.cpp 28: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 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test33.cpp 29:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test33.cpp 28:27 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 28:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ cleanup_point_expr test33.cpp 30:57 - statement
+ expr_stmt test33.cpp 30:57 - operand
+ call_expr test33.cpp 30:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 31:60 - statement
+ expr_stmt test33.cpp 31:60 - operand
+ call_expr test33.cpp 31:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 32:57 - statement
+ expr_stmt test33.cpp 32:57 - operand
+ call_expr test33.cpp 32:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 33:65 - statement
+ expr_stmt test33.cpp 33:65 - operand
+ call_expr test33.cpp 33:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ while_stmt test33.cpp 34:9 - statement
+ ne_expr - condition
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 28:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ statement_list - body
+ cleanup_point_expr test33.cpp 36:61 - statement
+ expr_stmt test33.cpp 36:61 - operand
+ call_expr test33.cpp 36:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 37:68 - statement
+ expr_stmt test33.cpp 37:68 - operand
+ call_expr test33.cpp 37:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 38:61 - statement
+ expr_stmt test33.cpp 38:61 - operand
+ call_expr test33.cpp 38:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 39:65 - statement
+ expr_stmt test33.cpp 39:65 - operand
+ call_expr test33.cpp 39:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 40:28 - statement
+ expr_stmt test33.cpp 40:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 40:19 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 28:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ cleanup_point_expr test33.cpp 42:57 - statement
+ expr_stmt test33.cpp 42:57 - operand
+ call_expr test33.cpp 42:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 43:60 - statement
+ expr_stmt test33.cpp 43:60 - operand
+ call_expr test33.cpp 43:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 44:57 - statement
+ expr_stmt test33.cpp 44:57 - operand
+ call_expr test33.cpp 44:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 45:65 - statement
+ expr_stmt test33.cpp 45:65 - operand
+ call_expr test33.cpp 45:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 46:24 - statement
+ expr_stmt test33.cpp 46:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 46:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 28:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+function_decl func2 test33.cpp 49: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 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test33.cpp 50:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test33.cpp 49:27 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 49:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ cleanup_point_expr test33.cpp 51:57 - statement
+ expr_stmt test33.cpp 51:57 - operand
+ call_expr test33.cpp 51:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 52:60 - statement
+ expr_stmt test33.cpp 52:60 - operand
+ call_expr test33.cpp 52:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 53:57 - statement
+ expr_stmt test33.cpp 53:57 - operand
+ call_expr test33.cpp 53:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 54:65 - statement
+ expr_stmt test33.cpp 54:65 - operand
+ call_expr test33.cpp 54:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ if_stmt test33.cpp 55:9 - statement
+ ne_expr - condition
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 49:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ statement_list - then
+ cleanup_point_expr test33.cpp 57:61 - statement
+ expr_stmt test33.cpp 57:61 - operand
+ call_expr test33.cpp 57:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 58:68 - statement
+ expr_stmt test33.cpp 58:68 - operand
+ call_expr test33.cpp 58:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 59:61 - statement
+ expr_stmt test33.cpp 59:61 - operand
+ call_expr test33.cpp 59:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 60:65 - statement
+ expr_stmt test33.cpp 60:65 - operand
+ call_expr test33.cpp 60:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 61:28 - statement
+ expr_stmt test33.cpp 61:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 61:19 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 49:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ cleanup_point_expr test33.cpp 63:57 - statement
+ expr_stmt test33.cpp 63:57 - operand
+ call_expr test33.cpp 63:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 64:60 - statement
+ expr_stmt test33.cpp 64:60 - operand
+ call_expr test33.cpp 64:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 65:57 - statement
+ expr_stmt test33.cpp 65:57 - operand
+ call_expr test33.cpp 65:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 66:65 - statement
+ expr_stmt test33.cpp 66:65 - operand
+ call_expr test33.cpp 66:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 67:24 - statement
+ expr_stmt test33.cpp 67:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 67:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 49:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+function_decl func3 test33.cpp 70: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 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test33.cpp 71: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 test33.cpp 70:27 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 70:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ cleanup_point_expr test33.cpp 72:57 - statement
+ expr_stmt test33.cpp 72:57 - operand
+ call_expr test33.cpp 72:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 73:60 - statement
+ expr_stmt test33.cpp 73:60 - operand
+ call_expr test33.cpp 73:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 74:57 - statement
+ expr_stmt test33.cpp 74:57 - operand
+ call_expr test33.cpp 74:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 75:65 - statement
+ expr_stmt test33.cpp 75:65 - operand
+ call_expr test33.cpp 75:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ while_stmt test33.cpp 76:9 - statement
+ eq_expr test33.cpp 76:17 - condition
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 70:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ statement_list - body
+ cleanup_point_expr test33.cpp 78:61 - statement
+ expr_stmt test33.cpp 78:61 - operand
+ call_expr test33.cpp 78:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 79:64 - statement
+ expr_stmt test33.cpp 79:64 - operand
+ call_expr test33.cpp 79:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 80:65 - statement
+ expr_stmt test33.cpp 80:65 - operand
+ call_expr test33.cpp 80:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 81:69 - statement
+ expr_stmt test33.cpp 81:69 - operand
+ call_expr test33.cpp 81:35 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 82:28 - statement
+ expr_stmt test33.cpp 82:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 82:19 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 70:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ return_expr test33.cpp 83:13 - statement
+ cleanup_point_expr test33.cpp 85:57 - statement
+ expr_stmt test33.cpp 85:57 - operand
+ call_expr test33.cpp 85:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 86:64 - statement
+ expr_stmt test33.cpp 86:64 - operand
+ call_expr test33.cpp 86:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test33.cpp 87:57 - statement
+ expr_stmt test33.cpp 87:57 - operand
+ call_expr test33.cpp 87:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 88:61 - statement
+ expr_stmt test33.cpp 88:61 - operand
+ call_expr test33.cpp 88:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test33.cpp 16:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test33.cpp 89:24 - statement
+ expr_stmt test33.cpp 89:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 89:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 70:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+ cleanup_point_expr test33.cpp 90:20 - statement
+ expr_stmt test33.cpp 90:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 90:9 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test33.cpp 70:27 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl ptr1 test33.cpp 70:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test33.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test33.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test33.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test33.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ if_stmt test33.cpp 91:9 - statement
+ ne_expr - condition
+ component_ref test33.cpp 91:13 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test33.cpp 70:27 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ integer_cst 0 - operand
+ cleanup_point_expr test33.cpp 92:28 - then
+ expr_stmt test33.cpp 92:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test33.cpp 92:19 - operand
+ indirect_ref - object
+ component_ref test33.cpp 92:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test33.cpp 70:27 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test33.cpp 18:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test33.cpp 20:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test33.cpp 19:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test33.cpp 21:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test33.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 300 - operand
diff --git a/test/test33-02.txt b/test/test33-02.txt
new file mode 100644
index 0000000..04100a0
--- /dev/null
+++ b/test/test33-02.txt
@@ -0,0 +1,4 @@
+getData1:
+func1: pointer_type ptr1,
+func2: pointer_type ptr1,
+func3: pointer_type ptr1,
diff --git a/test/test33-03.txt b/test/test33-03.txt
new file mode 100644
index 0000000..897c2da
--- /dev/null
+++ b/test/test33-03.txt
@@ -0,0 +1,475 @@
+function_decl getData1:
+return_expr :
+init_expr :
+result_decl :
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+function_decl func1:
+statement_list : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+while_stmt : ptr1,
+ne_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+statement_list :
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 100:
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+convert_expr : ptr1,
+modify_expr : ptr1,
+component_ref : ptr1,
+test33.cpp: In member function 'void Object1::func1(Data1*)':
+test33.cpp:46:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+indirect_ref : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+integer_cst 200: ptr1,
+function_decl func2:
+statement_list : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+if_stmt : ptr1,
+ne_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+statement_list :
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 100:
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+convert_expr : ptr1,
+modify_expr : ptr1,
+component_ref : ptr1,
+test33.cpp: In member function 'void Object1::func2(Data1*)':
+test33.cpp:67:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+indirect_ref : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+integer_cst 200: ptr1,
+function_decl func3:
+statement_list : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+while_stmt : ptr1,
+eq_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+statement_list : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+call_expr : ptr1,
+addr_expr : ptr1,
+function_decl paranuckerInternalTest: ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+convert_expr : ptr1,
+modify_expr : ptr1,
+component_ref : ptr1,
+test33.cpp: In member function 'void Object1::func3(Data1*)':
+test33.cpp:82:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 100;
+ ^
+indirect_ref : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+integer_cst 100: ptr1,
+return_expr : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr : ptr1,
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr : ptr1,
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr : ptr1,
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr : ptr1,
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 200:
+cleanup_point_expr : ptr1,
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+if_stmt : ptr1,
+ne_expr : ptr1,
+test33.cpp:91:9: warning: Useless variable check 'this->tmp2'. It already was checked before
+ if (tmp2)
+ ^
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+integer_cst 0:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 300:
diff --git a/test/test33-04.txt b/test/test33-04.txt
new file mode 100644
index 0000000..016554c
--- /dev/null
+++ b/test/test33-04.txt
@@ -0,0 +1,15 @@
+test33.cpp: In member function 'void Object1::func1(Data1*)':
+test33.cpp:46:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+test33.cpp: In member function 'void Object1::func2(Data1*)':
+test33.cpp:67:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+test33.cpp: In member function 'void Object1::func3(Data1*)':
+test33.cpp:82:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 100;
+ ^
+test33.cpp:91:9: warning: Useless variable check 'this->tmp2'. It already was checked before
+ if (tmp2)
+ ^
diff --git a/test/test33-05.txt b/test/test33-05.txt
new file mode 100644
index 0000000..016554c
--- /dev/null
+++ b/test/test33-05.txt
@@ -0,0 +1,15 @@
+test33.cpp: In member function 'void Object1::func1(Data1*)':
+test33.cpp:46:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+test33.cpp: In member function 'void Object1::func2(Data1*)':
+test33.cpp:67:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+test33.cpp: In member function 'void Object1::func3(Data1*)':
+test33.cpp:82:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 100;
+ ^
+test33.cpp:91:9: warning: Useless variable check 'this->tmp2'. It already was checked before
+ if (tmp2)
+ ^
diff --git a/test/test33.cpp b/test/test33.cpp
new file mode 100644
index 0000000..7ce7385
--- /dev/null
+++ b/test/test33.cpp
@@ -0,0 +1,95 @@
+struct Data1;
+
+struct Data1
+{
+ int val;
+ Data1 *ptrval;
+ int arr[3];
+};
+
+struct Data2 : public Data1
+{
+};
+
+int k;
+
+void paranuckerInternalTest(const char *action, const char *collection, const char *values);
+
+class Object1
+{
+ Data1 *tmp1;
+ Data1 *tmp2;
+
+ Data1 *getData1()
+ {
+ return tmp2;
+ }
+
+ void func1(Data1 *ptr1)
+ {
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
+ while (ptr1)
+ {
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ ptr1->val = 100;
+ }
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
+ ptr1->val = 200;
+ }
+
+ void func2(Data1 *ptr1)
+ {
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
+ if (ptr1)
+ {
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ ptr1->val = 100;
+ }
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
+ ptr1->val = 200;
+ }
+
+ void func3(Data1 *ptr1)
+ {
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
+ while (!ptr1)
+ {
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "");
+ paranuckerInternalTest("=", "knownNullVars", "ptr1");
+ paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
+ ptr1->val = 100;
+ return;
+ }
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ ptr1->val = 200;
+ tmp2 = ptr1;
+ if (tmp2)
+ tmp2->val = 300;
+ }
+
+};