diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-03 19:35:55 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-03 19:35:55 +0300 |
commit | ade715ffe212a72abb84bc9e740685f10508cfbd (patch) | |
tree | 4f3495cd7292fce4f5233ed80e36753b65aa85d7 | |
parent | 3a2cf0ac8858e6f181642d84d58ff24a001873fd (diff) | |
download | paranucker-ade715ffe212a72abb84bc9e740685f10508cfbd.tar.gz paranucker-ade715ffe212a72abb84bc9e740685f10508cfbd.tar.bz2 paranucker-ade715ffe212a72abb84bc9e740685f10508cfbd.tar.xz paranucker-ade715ffe212a72abb84bc9e740685f10508cfbd.zip |
Add test 30.
-rw-r--r-- | test/Makefile | 15 | ||||
-rw-r--r-- | test/test30-01.txt | 1499 | ||||
-rw-r--r-- | test/test30-02.txt | 4 | ||||
-rw-r--r-- | test/test30-03.txt | 390 | ||||
-rw-r--r-- | test/test30-04.txt | 4 | ||||
-rw-r--r-- | test/test30-05.txt | 4 | ||||
-rw-r--r-- | test/test30.cpp | 120 |
7 files changed, 2035 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile index 4dd6af6..adbcd6e 100644 --- a/test/Makefile +++ b/test/Makefile @@ -33,7 +33,8 @@ TESTS26 = $(call TEST,26,5) TESTS27 = $(call TEST,27,5) TESTS28 = $(call TEST,28,5) TESTS29 = $(call TEST,29,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 +TESTS30 = $(call TEST,30,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 ALLTESTS = $(foreach num,$(TESTNUMBERS),test$(num) ${TESTS$(num)}) .PHONY: ${ALLTESTS} ${CRASHES} all crashes @@ -356,6 +357,18 @@ test29-04: test29-05: $(call CMDXX,detectnullpointers,test29.cpp,test29-05.txt,-O2 -std=c++0x -Wall -Wnonnull) +test30: ${TESTS30} +test30-01: + $(call CMDXX,dump,test30.cpp,test30-01.txt,-std=c++0x) +test30-02: + $(call CMDXX,findargs,test30.cpp,test30-02.txt,-std=c++0x) +test30-03: + $(call CMDXX,dumpnullpointers,test30.cpp,test30-03.txt,-std=c++0x) +test30-04: + $(call CMDXX,detectnullpointers,test30.cpp,test30-04.txt,-std=c++0x) +test30-05: + $(call CMDXX,detectnullpointers,test30.cpp,test30-05.txt,-O2 -std=c++0x -Wall -Wnonnull) + crashtest01: $(call CMDXX,dump,crashtest01.h,crashtest01-01.txt) crashtest02: diff --git a/test/test30-01.txt b/test/test30-01.txt new file mode 100644 index 0000000..b6f4090 --- /dev/null +++ b/test/test30-01.txt @@ -0,0 +1,1499 @@ +function_decl getData test30.cpp 23:12 +- isPublic: 1 + method_type - function type + pointer_type - method return type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + record_type - method base type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.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 test30.cpp 24:5 - function result + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + - isUsed: 1 + parm_decl this test30.cpp 23:20 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + return_expr test30.cpp 25:16 - code + init_expr - operand + result_decl test30.cpp 24:5 - operand + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + component_ref test30.cpp 25:16 - operand + indirect_ref - object + nop_expr - ref + - isUsed: 1 + parm_decl this test30.cpp 23:20 - operand + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size +function_decl func1 test30.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 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.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 test30.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 test30.cpp 28:27 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test30.cpp 28:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + cleanup_point_expr test30.cpp 30:57 - statement + expr_stmt test30.cpp 30:57 - operand + call_expr test30.cpp 30:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 31:60 - statement + expr_stmt test30.cpp 31:60 - operand + call_expr test30.cpp 31:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 32:57 - statement + expr_stmt test30.cpp 32:57 - operand + call_expr test30.cpp 32:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 33:65 - statement + expr_stmt test30.cpp 33:65 - operand + call_expr test30.cpp 33:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 38:9 - statement + truth_orif_expr test30.cpp 38:19 - condition + eq_expr test30.cpp 38:14 - operand + - isUsed: 1 + parm_decl ptr1 test30.cpp 28:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + eq_expr test30.cpp 38:32 - operand + component_ref test30.cpp 38:28 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test30.cpp 28:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + integer_cst 10 - operand + statement_list - then + cleanup_point_expr test30.cpp 40:61 - statement + expr_stmt test30.cpp 40:61 - operand + call_expr test30.cpp 40:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 41:64 - statement + expr_stmt test30.cpp 41:64 - operand + call_expr test30.cpp 41:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 42:61 - statement + expr_stmt test30.cpp 42:61 - operand + call_expr test30.cpp 42:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 43:69 - statement + expr_stmt test30.cpp 43:69 - operand + call_expr test30.cpp 43:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 + return_expr test30.cpp 44:13 - statement + statement_list - else + cleanup_point_expr test30.cpp 48:61 - statement + expr_stmt test30.cpp 48:61 - operand + call_expr test30.cpp 48:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 49:68 - statement + expr_stmt test30.cpp 49:68 - operand + call_expr test30.cpp 49:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 50:61 - statement + expr_stmt test30.cpp 50:61 - operand + call_expr test30.cpp 50:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 51:65 - statement + expr_stmt test30.cpp 51:65 - operand + call_expr test30.cpp 51:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 53:57 - statement + expr_stmt test30.cpp 53:57 - operand + call_expr test30.cpp 53:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 54:64 - statement + expr_stmt test30.cpp 54:64 - operand + call_expr test30.cpp 54:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 55:57 - statement + expr_stmt test30.cpp 55:57 - operand + call_expr test30.cpp 55:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 56:61 - statement + expr_stmt test30.cpp 56:61 - operand + call_expr test30.cpp 56:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 +function_decl func2 test30.cpp 59: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 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.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 test30.cpp 60:5 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl this test30.cpp 59:27 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test30.cpp 59:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + cleanup_point_expr test30.cpp 61:57 - statement + expr_stmt test30.cpp 61:57 - operand + call_expr test30.cpp 61:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 62:60 - statement + expr_stmt test30.cpp 62:60 - operand + call_expr test30.cpp 62:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 63:57 - statement + expr_stmt test30.cpp 63:57 - operand + call_expr test30.cpp 63:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 64:65 - statement + expr_stmt test30.cpp 64:65 - operand + call_expr test30.cpp 64:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 69:9 - statement + truth_andif_expr test30.cpp 69:19 - condition + eq_expr test30.cpp 69:14 - operand + - isUsed: 1 + parm_decl ptr1 test30.cpp 59:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + eq_expr test30.cpp 69:32 - operand + component_ref test30.cpp 69:28 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test30.cpp 59:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + integer_cst 10 - operand + statement_list - then + cleanup_point_expr test30.cpp 71:61 - statement + expr_stmt test30.cpp 71:61 - operand + call_expr test30.cpp 71:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 72:64 - statement + expr_stmt test30.cpp 72:64 - operand + call_expr test30.cpp 72:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 73:65 - statement + expr_stmt test30.cpp 73:65 - operand + call_expr test30.cpp 73:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 74:69 - statement + expr_stmt test30.cpp 74:69 - operand + call_expr test30.cpp 74:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 + return_expr test30.cpp 75:13 - statement + statement_list - else + cleanup_point_expr test30.cpp 79:61 - statement + expr_stmt test30.cpp 79:61 - operand + call_expr test30.cpp 79:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 80:64 - statement + expr_stmt test30.cpp 80:64 - operand + call_expr test30.cpp 80:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 81:61 - statement + expr_stmt test30.cpp 81:61 - operand + call_expr test30.cpp 81:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 82:69 - statement + expr_stmt test30.cpp 82:69 - operand + call_expr test30.cpp 82:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 84:57 - statement + expr_stmt test30.cpp 84:57 - operand + call_expr test30.cpp 84:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 85:60 - statement + expr_stmt test30.cpp 85:60 - operand + call_expr test30.cpp 85:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 86:57 - statement + expr_stmt test30.cpp 86:57 - operand + call_expr test30.cpp 86:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 87:65 - statement + expr_stmt test30.cpp 87:65 - operand + call_expr test30.cpp 87:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 +function_decl func3 test30.cpp 90: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 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.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 test30.cpp 91:5 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl this test30.cpp 90:27 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test30.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test30.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test30.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test30.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test30.cpp 90:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + cleanup_point_expr test30.cpp 92:57 - statement + expr_stmt test30.cpp 92:57 - operand + call_expr test30.cpp 92:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 93:60 - statement + expr_stmt test30.cpp 93:60 - operand + call_expr test30.cpp 93:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 94:57 - statement + expr_stmt test30.cpp 94:57 - operand + call_expr test30.cpp 94:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 95:65 - statement + expr_stmt test30.cpp 95:65 - operand + call_expr test30.cpp 95:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 100:9 - statement + truth_andif_expr test30.cpp 100:18 - condition + ne_expr - operand + - isUsed: 1 + parm_decl ptr1 test30.cpp 90:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + eq_expr test30.cpp 100:31 - operand + component_ref test30.cpp 100:27 - operand + indirect_ref - object + - isUsed: 1 + parm_decl ptr1 test30.cpp 90:23 - ref + pointer_type - decl type + record_type - nested type + type_decl Data1 test30.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test30.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test30.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test30.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl val test30.cpp 5:9 - field + - signed + integer_cst 32 - decl size + integer_cst 10 - operand + statement_list - then + cleanup_point_expr test30.cpp 102:61 - statement + expr_stmt test30.cpp 102:61 - operand + call_expr test30.cpp 102:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 103:68 - statement + expr_stmt test30.cpp 103:68 - operand + call_expr test30.cpp 103:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 104:61 - statement + expr_stmt test30.cpp 104:61 - operand + call_expr test30.cpp 104:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 105:65 - statement + expr_stmt test30.cpp 105:65 - operand + call_expr test30.cpp 105:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 + return_expr test30.cpp 106:13 - statement + statement_list - else + cleanup_point_expr test30.cpp 110:61 - statement + expr_stmt test30.cpp 110:61 - operand + call_expr test30.cpp 110:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 111:64 - statement + expr_stmt test30.cpp 111:64 - operand + call_expr test30.cpp 111:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 112:61 - statement + expr_stmt test30.cpp 112:61 - operand + call_expr test30.cpp 112:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 113:69 - statement + expr_stmt test30.cpp 113:69 - operand + call_expr test30.cpp 113:35 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 115:57 - statement + expr_stmt test30.cpp 115:57 - operand + call_expr test30.cpp 115:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 116:60 - statement + expr_stmt test30.cpp 116:60 - operand + call_expr test30.cpp 116:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 117:57 - statement + expr_stmt test30.cpp 117:57 - operand + call_expr test30.cpp 117:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 test30.cpp 118:65 - statement + expr_stmt test30.cpp 118:65 - operand + call_expr test30.cpp 118:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test30.cpp 16:6 - operand + - isExternal: 1 + - isPublic: 1 + function_type - function 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 diff --git a/test/test30-02.txt b/test/test30-02.txt new file mode 100644 index 0000000..d047cbf --- /dev/null +++ b/test/test30-02.txt @@ -0,0 +1,4 @@ +getData: +func1: pointer_type ptr1, +func2: pointer_type ptr1, +func3: pointer_type ptr1, diff --git a/test/test30-03.txt b/test/test30-03.txt new file mode 100644 index 0000000..a06b844 --- /dev/null +++ b/test/test30-03.txt @@ -0,0 +1,390 @@ +function_decl getData: +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 tmp1: +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, +if_stmt : ptr1, +truth_orif_expr : 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, +eq_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 10: +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, +return_expr : 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 : 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: +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, +truth_andif_expr : 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, +eq_expr : ptr1, +component_ref : ptr1, +test30.cpp: In member function 'void Object1::func2(Data1*)': +test30.cpp:69:28: warning: Using parameter 'ptr1' without checking for null pointer + if (!ptr1 && ptr1->val == 10) + ^ +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 10: 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, +return_expr : 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, +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, +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, +if_stmt : ptr1, +truth_andif_expr : 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, +eq_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 10: +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: +return_expr : +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, +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, diff --git a/test/test30-04.txt b/test/test30-04.txt new file mode 100644 index 0000000..e06b836 --- /dev/null +++ b/test/test30-04.txt @@ -0,0 +1,4 @@ +test30.cpp: In member function 'void Object1::func2(Data1*)': +test30.cpp:69:28: warning: Using parameter 'ptr1' without checking for null pointer + if (!ptr1 && ptr1->val == 10) + ^ diff --git a/test/test30-05.txt b/test/test30-05.txt new file mode 100644 index 0000000..e06b836 --- /dev/null +++ b/test/test30-05.txt @@ -0,0 +1,4 @@ +test30.cpp: In member function 'void Object1::func2(Data1*)': +test30.cpp:69:28: warning: Using parameter 'ptr1' without checking for null pointer + if (!ptr1 && ptr1->val == 10) + ^ diff --git a/test/test30.cpp b/test/test30.cpp new file mode 100644 index 0000000..b2e049c --- /dev/null +++ b/test/test30.cpp @@ -0,0 +1,120 @@ +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 *getData() + { + return tmp1; + } + + void func1(Data1 *ptr1) + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + // null || 9 -> return + // null || 10 -> return + // 123 || 9 -> continue + // 123 || 10 -> return + if (!ptr1 || ptr1->val == 10) + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + return; + } + else + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr1"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + } + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr1"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + } + + void func2(Data1 *ptr1) + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + // null && 9 -> continue + // null && 10 -> return + // 123 && 9 -> continue + // 123 && 10 -> continue + if (!ptr1 && ptr1->val == 10) + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", "ptr1"); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + return; + } + else + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + } + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + } + + void func3(Data1 *ptr1) + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + // null && 9 -> continue + // null && 10 -> continue + // 123 && 9 -> continue + // 123 && 10 -> return + if (ptr1 && ptr1->val == 10) + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr1"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + return; + } + else + { + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + } + paranuckerInternalTest("=", "knownVars", "ptr1"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + } +}; |