diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-02 18:03:33 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-02 18:03:33 +0300 |
commit | 739619baa3b04c3e10fecdf0c7ac858c5cefb804 (patch) | |
tree | fb9858d157058d712f58bd815e8d085c379a4d12 /test | |
parent | 0c6aa5322c99a5a17d4ae3b33a60913117499276 (diff) | |
download | paranucker-739619baa3b04c3e10fecdf0c7ac858c5cefb804.tar.gz paranucker-739619baa3b04c3e10fecdf0c7ac858c5cefb804.tar.bz2 paranucker-739619baa3b04c3e10fecdf0c7ac858c5cefb804.tar.xz paranucker-739619baa3b04c3e10fecdf0c7ac858c5cefb804.zip |
Add test 29.
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 15 | ||||
-rw-r--r-- | test/test29-01.txt | 1421 | ||||
-rw-r--r-- | test/test29-02.txt | 4 | ||||
-rw-r--r-- | test/test29-03.txt | 374 | ||||
-rw-r--r-- | test/test29-04.txt | 0 | ||||
-rw-r--r-- | test/test29-05.txt | 0 | ||||
-rw-r--r-- | test/test29.cpp | 86 |
7 files changed, 1899 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile index a2ad1bd..4dd6af6 100644 --- a/test/Makefile +++ b/test/Makefile @@ -32,7 +32,8 @@ TESTS25 = $(call TEST,25,5) TESTS26 = $(call TEST,26,5) TESTS27 = $(call TEST,27,5) TESTS28 = $(call TEST,28,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 +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 ALLTESTS = $(foreach num,$(TESTNUMBERS),test$(num) ${TESTS$(num)}) .PHONY: ${ALLTESTS} ${CRASHES} all crashes @@ -343,6 +344,18 @@ test28-04: test28-05: $(call CMDXX,detectnullpointers,test28.cpp,test28-05.txt,-O2 -std=c++0x -Wall -Wnonnull) +test29: ${TESTS29} +test29-01: + $(call CMDXX,dump,test29.cpp,test29-01.txt,-std=c++0x) +test29-02: + $(call CMDXX,findargs,test29.cpp,test29-02.txt,-std=c++0x) +test29-03: + $(call CMDXX,dumpnullpointers,test29.cpp,test29-03.txt,-std=c++0x) +test29-04: + $(call CMDXX,detectnullpointers,test29.cpp,test29-04.txt,-std=c++0x) +test29-05: + $(call CMDXX,detectnullpointers,test29.cpp,test29-05.txt,-O2 -std=c++0x -Wall -Wnonnull) + crashtest01: $(call CMDXX,dump,crashtest01.h,crashtest01-01.txt) crashtest02: diff --git a/test/test29-01.txt b/test/test29-01.txt new file mode 100644 index 0000000..8b83a21 --- /dev/null +++ b/test/test29-01.txt @@ -0,0 +1,1421 @@ +function_decl getData test29.cpp 23:12 +- isPublic: 1 + method_type - function type + pointer_type - method return type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + record_type - method base type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.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 test29.cpp 24:5 - function result + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + - isUsed: 1 + parm_decl this test29.cpp 23:20 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + return_expr test29.cpp 25:16 - code + init_expr - operand + result_decl test29.cpp 24:5 - operand + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + component_ref test29.cpp 25:16 - operand + indirect_ref - object + nop_expr - ref + - isUsed: 1 + parm_decl this test29.cpp 23:20 - operand + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size +function_decl func1 test29.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 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.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 test29.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 test29.cpp 28:40 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test29.cpp 28:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr2 test29.cpp 28:36 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + cleanup_point_expr test29.cpp 30:62 - statement + expr_stmt test29.cpp 30:62 - operand + call_expr test29.cpp 30:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 31:60 - statement + expr_stmt test29.cpp 31:60 - operand + call_expr test29.cpp 31:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 32:57 - statement + expr_stmt test29.cpp 32:57 - operand + call_expr test29.cpp 32:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 33:70 - statement + expr_stmt test29.cpp 33:70 - operand + call_expr test29.cpp 33:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + if_stmt test29.cpp 34:9 - statement + eq_expr test29.cpp 34:14 - condition + - isUsed: 1 + parm_decl ptr2 test29.cpp 28:36 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + return_expr test29.cpp 35:13 - then + cleanup_point_expr test29.cpp 36:62 - statement + expr_stmt test29.cpp 36:62 - operand + call_expr test29.cpp 36:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 37:64 - statement + expr_stmt test29.cpp 37:64 - operand + call_expr test29.cpp 37:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 5 + cleanup_point_expr test29.cpp 38:57 - statement + expr_stmt test29.cpp 38:57 - operand + call_expr test29.cpp 38:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 39:65 - statement + expr_stmt test29.cpp 39:65 - operand + call_expr test29.cpp 39:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 40:20 - statement + expr_stmt test29.cpp 40:20 - operand + convert_expr - expresssion + modify_expr - operand + - isUsed: 1 + parm_decl ptr1 test29.cpp 28:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr2 test29.cpp 28:36 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + cleanup_point_expr test29.cpp 41:62 - statement + expr_stmt test29.cpp 41:62 - operand + call_expr test29.cpp 41:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 42:69 - statement + expr_stmt test29.cpp 42:69 - operand + call_expr test29.cpp 42:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 43:57 - statement + expr_stmt test29.cpp 43:57 - operand + call_expr test29.cpp 43:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 44:61 - statement + expr_stmt test29.cpp 44:61 - operand + call_expr test29.cpp 44:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 47: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 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data2 test29.cpp 10:8 - type name + - isAutogenerated: 1 + field_decl test29.cpp 10:8 - field + - signed + - isAutogenerated: 1 + integer_cst 256 - decl size + type_decl Data2 test29.cpp 11:1 - field + - isAutogenerated: 1 + tree_list - chain + void_type - value + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + result_decl test29.cpp 48:5 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl this test29.cpp 47:40 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr1 test29.cpp 47:23 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr2 test29.cpp 47:36 - argument + pointer_type - decl type + record_type - nested type + type_decl Data2 test29.cpp 10:8 - type name + - isAutogenerated: 1 + field_decl test29.cpp 10:8 - field + - signed + - isAutogenerated: 1 + integer_cst 256 - decl size + type_decl Data2 test29.cpp 11:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + statement_list - code + cleanup_point_expr test29.cpp 49:62 - statement + expr_stmt test29.cpp 49:62 - operand + call_expr test29.cpp 49:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 50:60 - statement + expr_stmt test29.cpp 50:60 - operand + call_expr test29.cpp 50:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 51:57 - statement + expr_stmt test29.cpp 51:57 - operand + call_expr test29.cpp 51:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 52:70 - statement + expr_stmt test29.cpp 52:70 - operand + call_expr test29.cpp 52:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + if_stmt test29.cpp 53:9 - statement + eq_expr test29.cpp 53:14 - condition + - isUsed: 1 + parm_decl ptr2 test29.cpp 47:36 - operand + pointer_type - decl type + record_type - nested type + type_decl Data2 test29.cpp 10:8 - type name + - isAutogenerated: 1 + field_decl test29.cpp 10:8 - field + - signed + - isAutogenerated: 1 + integer_cst 256 - decl size + type_decl Data2 test29.cpp 11:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + return_expr test29.cpp 54:13 - then + cleanup_point_expr test29.cpp 55:62 - statement + expr_stmt test29.cpp 55:62 - operand + call_expr test29.cpp 55:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 56:64 - statement + expr_stmt test29.cpp 56:64 - operand + call_expr test29.cpp 56:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 5 + cleanup_point_expr test29.cpp 57:57 - statement + expr_stmt test29.cpp 57:57 - operand + call_expr test29.cpp 57:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 58:65 - statement + expr_stmt test29.cpp 58:65 - operand + call_expr test29.cpp 58:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 59:42 - statement + expr_stmt test29.cpp 59:42 - operand + convert_expr - expresssion + modify_expr - operand + - isUsed: 1 + parm_decl ptr1 test29.cpp 47:23 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + nop_expr - operand + nop_expr - operand + - isUsed: 1 + parm_decl ptr2 test29.cpp 47:36 - operand + pointer_type - decl type + record_type - nested type + type_decl Data2 test29.cpp 10:8 - type name + - isAutogenerated: 1 + field_decl test29.cpp 10:8 - field + - signed + - isAutogenerated: 1 + integer_cst 256 - decl size + type_decl Data2 test29.cpp 11:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + cleanup_point_expr test29.cpp 60:62 - statement + expr_stmt test29.cpp 60:62 - operand + call_expr test29.cpp 60:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 61:69 - statement + expr_stmt test29.cpp 61:69 - operand + call_expr test29.cpp 61:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 62:57 - statement + expr_stmt test29.cpp 62:57 - operand + call_expr test29.cpp 62:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 63:61 - statement + expr_stmt test29.cpp 63:61 - operand + call_expr test29.cpp 63:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 func3 test29.cpp 66:12 +- isPublic: 1 + method_type - function type + pointer_type - method return type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + record_type - method base type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - arg types + pointer_type - value + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + tree_list - chain + pointer_type - value + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.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 test29.cpp 67:5 - function result + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + parm_decl this test29.cpp 66:29 - argument + - isAutogenerated: 1 + pointer_type - decl type + record_type - nested type + type_decl Object1 test29.cpp 18:7 - type name + - isAutogenerated: 1 + field_decl tmp1 test29.cpp 20:12 - field + - unsigned + integer_cst 64 - decl size + field_decl tmp2 test29.cpp 21:12 - field + - unsigned + integer_cst 64 - decl size + type_decl Object1 test29.cpp 19:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + - isUsed: 1 + parm_decl ptr2 test29.cpp 66:25 - argument + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + bind_expr test29.cpp 84:20 - code + var_decl ptr1 test29.cpp 68:16 - operand + - isUsed: 1 + integer_cst 64 - decl size + pointer_type - var type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + statement_list - operand + decl_expr test29.cpp 68:16 - statement + var_decl ptr1 test29.cpp 68:16 - operand + - isUsed: 1 + cleanup_point_expr test29.cpp 69:57 - statement + expr_stmt test29.cpp 69:57 - operand + call_expr test29.cpp 69:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 5 + cleanup_point_expr test29.cpp 70:60 - statement + expr_stmt test29.cpp 70:60 - operand + call_expr test29.cpp 70:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 71:57 - statement + expr_stmt test29.cpp 71:57 - operand + call_expr test29.cpp 71:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 72:65 - statement + expr_stmt test29.cpp 72:65 - operand + call_expr test29.cpp 72:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 5 + if_stmt test29.cpp 73:9 - statement + eq_expr test29.cpp 73:14 - condition + - isUsed: 1 + parm_decl ptr2 test29.cpp 66:25 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + integer_cst 0 - operand + return_expr test29.cpp 74:20 - then + init_expr - operand + result_decl test29.cpp 67:5 - operand + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + integer_cst 0 - operand + cleanup_point_expr test29.cpp 75:57 - statement + expr_stmt test29.cpp 75:57 - operand + call_expr test29.cpp 75:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 5 + cleanup_point_expr test29.cpp 76:64 - statement + expr_stmt test29.cpp 76:64 - operand + call_expr test29.cpp 76:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 5 + cleanup_point_expr test29.cpp 77:57 - statement + expr_stmt test29.cpp 77:57 - operand + call_expr test29.cpp 77:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 78:61 - statement + expr_stmt test29.cpp 78:61 - operand + call_expr test29.cpp 78:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 79:20 - statement + expr_stmt test29.cpp 79:20 - operand + convert_expr - expresssion + modify_expr - operand + var_decl ptr1 test29.cpp 68:16 - operand + - isUsed: 1 + - isUsed: 1 + parm_decl ptr2 test29.cpp 66:25 - operand + pointer_type - decl type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - parm size + cleanup_point_expr test29.cpp 80:62 - statement + expr_stmt test29.cpp 80:62 - operand + call_expr test29.cpp 80:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 81:69 - statement + expr_stmt test29.cpp 81:69 - operand + call_expr test29.cpp 81:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 ptr2 - operand + - stringLength: 10 + cleanup_point_expr test29.cpp 82:57 - statement + expr_stmt test29.cpp 82:57 - operand + call_expr test29.cpp 82:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 83:61 - statement + expr_stmt test29.cpp 83:61 - operand + call_expr test29.cpp 83:31 - expresssion + addr_expr - function + function_decl paranuckerInternalTest test29.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 test29.cpp 84:16 - statement + init_expr - operand + result_decl test29.cpp 67:5 - operand + - isAutogenerated: 1 + pointer_type - result type + record_type - nested type + type_decl Data1 test29.cpp 3:8 - type name + - isAutogenerated: 1 + field_decl val test29.cpp 5:9 - field + - signed + integer_cst 32 - decl size + field_decl ptrval test29.cpp 6:12 - field + - unsigned + integer_cst 64 - decl size + field_decl arr test29.cpp 7:14 - field + - signed + integer_cst 96 - decl size + type_decl Data1 test29.cpp 4:1 - field + - isAutogenerated: 1 + integer_cst 64 - decl size + var_decl ptr1 test29.cpp 68:16 - operand + - isUsed: 1 + block - operand + var_decl ptr1 test29.cpp 68:16 - block vars + - isUsed: 1 diff --git a/test/test29-02.txt b/test/test29-02.txt new file mode 100644 index 0000000..1a4bf26 --- /dev/null +++ b/test/test29-02.txt @@ -0,0 +1,4 @@ +getData: +func1: pointer_type ptr1, pointer_type ptr2, +func2: pointer_type ptr1, pointer_type ptr2, +func3: pointer_type ptr2, diff --git a/test/test29-03.txt b/test/test29-03.txt new file mode 100644 index 0000000..a065e47 --- /dev/null +++ b/test/test29-03.txt @@ -0,0 +1,374 @@ +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, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +if_stmt : ptr1, ptr2, +eq_expr : ptr1, ptr2, +parm_decl ptr2: ptr1, ptr2, +pointer_type : ptr1, ptr2, +record_type : ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +field_decl val: ptr1, ptr2, +integer_cst 32: ptr1, ptr2, +field_decl ptrval: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +field_decl arr: ptr1, ptr2, +integer_cst 96: ptr1, ptr2, +type_decl Data1: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +integer_cst 0: ptr1, ptr2, +return_expr : ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +convert_expr : ptr1, +modify_expr : ptr1, +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: +parm_decl ptr2: +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: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +function_decl func2: +statement_list : ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, ptr2, +call_expr : ptr1, ptr2, +addr_expr : ptr1, ptr2, +function_decl paranuckerInternalTest: ptr1, ptr2, +if_stmt : ptr1, ptr2, +eq_expr : ptr1, ptr2, +parm_decl ptr2: ptr1, ptr2, +pointer_type : ptr1, ptr2, +record_type : ptr1, ptr2, +type_decl Data2: ptr1, ptr2, +field_decl : ptr1, ptr2, +integer_cst 256: ptr1, ptr2, +type_decl Data2: ptr1, ptr2, +integer_cst 64: ptr1, ptr2, +integer_cst 0: ptr1, ptr2, +return_expr : ptr1, ptr2, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +call_expr : ptr1, +addr_expr : ptr1, +function_decl paranuckerInternalTest: ptr1, +cleanup_point_expr : ptr1, ptr2, +expr_stmt : ptr1, +convert_expr : ptr1, +modify_expr : ptr1, +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: +parm_decl ptr2: +pointer_type : +record_type : +type_decl Data2: +field_decl : +integer_cst 256: +type_decl Data2: +integer_cst 64: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr1, ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +function_decl func3: +bind_expr : ptr2, +statement_list : ptr2, +decl_expr : ptr2, +var_decl ptr1: ptr2, +cleanup_point_expr : ptr2, +expr_stmt : ptr2, +call_expr : ptr2, +addr_expr : ptr2, +function_decl paranuckerInternalTest: ptr2, +cleanup_point_expr : ptr2, +expr_stmt : ptr2, +call_expr : ptr2, +addr_expr : ptr2, +function_decl paranuckerInternalTest: ptr2, +cleanup_point_expr : ptr2, +expr_stmt : ptr2, +call_expr : ptr2, +addr_expr : ptr2, +function_decl paranuckerInternalTest: ptr2, +cleanup_point_expr : ptr2, +expr_stmt : ptr2, +call_expr : ptr2, +addr_expr : ptr2, +function_decl paranuckerInternalTest: ptr2, +if_stmt : ptr2, +eq_expr : ptr2, +parm_decl ptr2: ptr2, +pointer_type : ptr2, +record_type : ptr2, +type_decl Data1: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +field_decl ptrval: ptr2, +integer_cst 64: ptr2, +field_decl arr: ptr2, +integer_cst 96: ptr2, +type_decl Data1: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, +return_expr : ptr2, +init_expr : ptr2, +result_decl : ptr2, +pointer_type : ptr2, +record_type : ptr2, +type_decl Data1: ptr2, +field_decl val: ptr2, +integer_cst 32: ptr2, +field_decl ptrval: ptr2, +integer_cst 64: ptr2, +field_decl arr: ptr2, +integer_cst 96: ptr2, +type_decl Data1: ptr2, +integer_cst 64: ptr2, +integer_cst 0: ptr2, +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +convert_expr : +modify_expr : +var_decl ptr1: +parm_decl ptr2: +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: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +cleanup_point_expr : ptr2, +expr_stmt : +call_expr : +addr_expr : +function_decl paranuckerInternalTest: +return_expr : ptr2, +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: +var_decl ptr1: +var_decl ptr1: ptr2, +integer_cst 64: +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: +block : ptr2, +var_decl ptr1: diff --git a/test/test29-04.txt b/test/test29-04.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/test29-04.txt diff --git a/test/test29-05.txt b/test/test29-05.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/test29-05.txt diff --git a/test/test29.cpp b/test/test29.cpp new file mode 100644 index 0000000..472f242 --- /dev/null +++ b/test/test29.cpp @@ -0,0 +1,86 @@ +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, Data1 *ptr2) + { + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2"); + if (!ptr2) + return; + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr2"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + ptr1 = ptr2; + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + } + + void func2(Data1 *ptr1, Data2 *ptr2) + { + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2"); + if (!ptr2) + return; + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr2"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr1"); + ptr1 = dynamic_cast<Data1*>(ptr2); + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + } + + Data1 *func3(Data1 *ptr2) + { + Data1 *ptr1; + paranuckerInternalTest("=", "knownVars", "ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", ""); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", "ptr2"); + if (!ptr2) + return 0; + paranuckerInternalTest("=", "knownVars", "ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr2"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + ptr1 = ptr2; + paranuckerInternalTest("=", "knownVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNonNullVars", "ptr1 ptr2"); + paranuckerInternalTest("=", "knownNullVars", ""); + paranuckerInternalTest("=", "needCheckNullVars", ""); + return ptr1; + } +}; |