diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-08 16:17:05 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-08 16:17:05 +0300 |
commit | f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39 (patch) | |
tree | e1f7851756b8fb91263b13a8a38030b2d29aa7e2 | |
parent | f44485b4aa4ff2ddbb648704010ce9c4492de0d0 (diff) | |
download | paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.tar.gz paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.tar.bz2 paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.tar.xz paranucker-f21d3beacdcdf9f86dbc06a9aa356ff07d6e4b39.zip |
Add test 33.
-rw-r--r-- | test/Makefile | 15 | ||||
-rw-r--r-- | test/test33-01.txt | 1482 | ||||
-rw-r--r-- | test/test33-02.txt | 4 | ||||
-rw-r--r-- | test/test33-03.txt | 475 | ||||
-rw-r--r-- | test/test33-04.txt | 15 | ||||
-rw-r--r-- | test/test33-05.txt | 15 | ||||
-rw-r--r-- | test/test33.cpp | 95 |
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; + } + +}; |