summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Makefile15
-rw-r--r--test/test36-01.txt1298
-rw-r--r--test/test36-02.txt6
-rw-r--r--test/test36-03.txt319
-rw-r--r--test/test36-04.txt0
-rw-r--r--test/test36-05.txt12
-rw-r--r--test/test36.cpp81
7 files changed, 1730 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile
index 8248bdf..4490728 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -39,7 +39,8 @@ TESTS32 = $(call TEST,32,5)
TESTS33 = $(call TEST,33,5)
TESTS34 = $(call TEST,34,5)
TESTS35 = $(call TEST,35,5)
-TESTNUMBERS = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
+TESTS36 = $(call TEST,36,5)
+TESTNUMBERS = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
ALLTESTS = $(foreach num,$(TESTNUMBERS),test$(num) ${TESTS$(num)})
.PHONY: ${ALLTESTS} ${CRASHES} all crashes
@@ -434,6 +435,18 @@ test35-04:
test35-05:
$(call CMDXX,detectnullpointers,test35.cpp,test35-05.txt,-O2 -std=c++0x -Wall -Wnonnull)
+test36: ${TESTS36}
+test36-01:
+ $(call CMDXX,dump,test36.cpp,test36-01.txt,-std=c++0x)
+test36-02:
+ $(call CMDXX,findargs,test36.cpp,test36-02.txt,-std=c++0x)
+test36-03:
+ $(call CMDXX,dumpnullpointers,test36.cpp,test36-03.txt,-std=c++0x)
+test36-04:
+ $(call CMDXX,detectnullpointers,test36.cpp,test36-04.txt,-std=c++0x)
+test36-05:
+ $(call CMDXX,detectnullpointers,test36.cpp,test36-05.txt,-O2 -std=c++0x -Wall -Wnonnull)
+
crashtest01:
$(call CMDXX,dump,crashtest01.h,crashtest01-01.txt)
crashtest02:
diff --git a/test/test36-01.txt b/test/test36-01.txt
new file mode 100644
index 0000000..df28524
--- /dev/null
+++ b/test/test36-01.txt
@@ -0,0 +1,1298 @@
+function_decl getData3 test36.cpp 8:12
+- isPublic: 1
+ method_type - function type
+ pointer_type - method return type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ record_type - method base type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.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 test36.cpp 9:5 - function result
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl this test36.cpp 8:21 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ return_expr test36.cpp 10:16 - code
+ init_expr - operand
+ result_decl test36.cpp 9:5 - operand
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ component_ref test36.cpp 10:16 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test36.cpp 8:21 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+function_decl getData1 test36.cpp 27:12
+- isPublic: 1
+ method_type - function type
+ pointer_type - method return type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ record_type - method base type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test36.cpp 28:5 - function result
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl this test36.cpp 27:21 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ return_expr test36.cpp 29:16 - code
+ init_expr - operand
+ result_decl test36.cpp 28:5 - operand
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ component_ref test36.cpp 29:16 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test36.cpp 27:21 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+function_decl getData2 test36.cpp 32:12
+- isPublic: 1
+ method_type - function type
+ tree_list - attribute
+ identifier_node returns_nonnull - purpose
+ pointer_type - method return type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ record_type - method base type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test36.cpp 33:5 - function result
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl this test36.cpp 32:54 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ return_expr test36.cpp 34:16 - code
+ init_expr - operand
+ result_decl test36.cpp 33:5 - operand
+ - isAutogenerated: 1
+ pointer_type - result type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ component_ref test36.cpp 34:16 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test36.cpp 32:54 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+function_decl func1 test36.cpp 37: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 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test36.cpp 38:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test36.cpp 37:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test36.cpp 49:71 - code
+ var_decl ptr1 test36.cpp 39:16 - operand
+ integer_cst 64 - decl size
+ pointer_type - var type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ statement_list - operand
+ decl_expr test36.cpp 39:27 - statement
+ var_decl ptr1 test36.cpp 39:16 - operand
+ cleanup_point_expr test36.cpp 39:27 - statement
+ expr_stmt test36.cpp 39:27 - operand
+ convert_expr - expresssion
+ init_expr - operand
+ var_decl ptr1 test36.cpp 39:16 - operand
+ nop_expr - operand
+ call_expr test36.cpp 39:27 - operand
+ addr_expr - function
+ function_decl operator new <built-in> 0:0 - operand
+ - isAutogenerated: 1
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ pointer_type - function return type
+ tree_list - attribute
+ identifier_node alloc_size - purpose
+ tree_list - value
+ integer_cst 1 - value
+ tree_list - chain
+ identifier_node externally_visible - purpose
+ integer_cst 32 - arg
+ cleanup_point_expr test36.cpp 40:57 - statement
+ expr_stmt test36.cpp 40:57 - operand
+ call_expr test36.cpp 40:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 41:64 - statement
+ expr_stmt test36.cpp 41:64 - operand
+ call_expr test36.cpp 41:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 42:57 - statement
+ expr_stmt test36.cpp 42:57 - operand
+ call_expr test36.cpp 42:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 43:61 - statement
+ expr_stmt test36.cpp 43:61 - operand
+ call_expr test36.cpp 43:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 44:55 - statement
+ expr_stmt test36.cpp 44:55 - operand
+ call_expr test36.cpp 44:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst addNullVars - operand
+ - stringLength: 12
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 45:61 - statement
+ expr_stmt test36.cpp 45:61 - operand
+ call_expr test36.cpp 45:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst removeNullVarsAll - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 46:58 - statement
+ expr_stmt test36.cpp 46:58 - operand
+ call_expr test36.cpp 46:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedVars - operand
+ - stringLength: 11
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 47:64 - statement
+ expr_stmt test36.cpp 47:64 - operand
+ call_expr test36.cpp 47:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedVars - operand
+ - stringLength: 11
+ nop_expr - arg
+ addr_expr - operand
+ string_cst this->tmp1 - operand
+ - stringLength: 11
+ cleanup_point_expr test36.cpp 48:65 - statement
+ expr_stmt test36.cpp 48:65 - operand
+ call_expr test36.cpp 48:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedReverseVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 49:71 - statement
+ expr_stmt test36.cpp 49:71 - operand
+ call_expr test36.cpp 49:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedReverseVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst this->tmp1 - operand
+ - stringLength: 11
+ block - operand
+ var_decl ptr1 test36.cpp 39:16 - block vars
+function_decl func2 test36.cpp 52: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 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test36.cpp 53:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test36.cpp 52:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test36.cpp 64:71 - code
+ var_decl ptr1 test36.cpp 54:16 - operand
+ integer_cst 64 - decl size
+ pointer_type - var type
+ record_type - nested type
+ type_decl Data1 test36.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test36.cpp 5:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test36.cpp 6:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test36.cpp 7:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test36.cpp 4:1 - field
+ - isAutogenerated: 1
+ statement_list - operand
+ decl_expr test36.cpp 54:35 - statement
+ var_decl ptr1 test36.cpp 54:16 - operand
+ cleanup_point_expr test36.cpp 54:35 - statement
+ expr_stmt test36.cpp 54:35 - operand
+ convert_expr - expresssion
+ init_expr - operand
+ var_decl ptr1 test36.cpp 54:16 - operand
+ nop_expr - operand
+ call_expr test36.cpp 54:35 - operand
+ addr_expr - function
+ function_decl operator new [] <built-in> 0:0 - operand
+ - isAutogenerated: 1
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ pointer_type - function return type
+ tree_list - attribute
+ identifier_node alloc_size - purpose
+ tree_list - value
+ integer_cst 1 - value
+ tree_list - chain
+ identifier_node externally_visible - purpose
+ integer_cst 320 - arg
+ cleanup_point_expr test36.cpp 55:57 - statement
+ expr_stmt test36.cpp 55:57 - operand
+ call_expr test36.cpp 55:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 56:64 - statement
+ expr_stmt test36.cpp 56:64 - operand
+ call_expr test36.cpp 56:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 57:57 - statement
+ expr_stmt test36.cpp 57:57 - operand
+ call_expr test36.cpp 57:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 58:61 - statement
+ expr_stmt test36.cpp 58:61 - operand
+ call_expr test36.cpp 58:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 59:55 - statement
+ expr_stmt test36.cpp 59:55 - operand
+ call_expr test36.cpp 59:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst addNullVars - operand
+ - stringLength: 12
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 60:61 - statement
+ expr_stmt test36.cpp 60:61 - operand
+ call_expr test36.cpp 60:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst removeNullVarsAll - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 61:58 - statement
+ expr_stmt test36.cpp 61:58 - operand
+ call_expr test36.cpp 61:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedVars - operand
+ - stringLength: 11
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 62:64 - statement
+ expr_stmt test36.cpp 62:64 - operand
+ call_expr test36.cpp 62:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedVars - operand
+ - stringLength: 11
+ nop_expr - arg
+ addr_expr - operand
+ string_cst this->tmp1 - operand
+ - stringLength: 11
+ cleanup_point_expr test36.cpp 63:65 - statement
+ expr_stmt test36.cpp 63:65 - operand
+ call_expr test36.cpp 63:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedReverseVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 64:71 - statement
+ expr_stmt test36.cpp 64:71 - operand
+ call_expr test36.cpp 64:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedReverseVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst this->tmp1 - operand
+ - stringLength: 11
+ block - operand
+ var_decl ptr1 test36.cpp 54:16 - block vars
+function_decl func3 test36.cpp 67: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 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test36.cpp 68:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test36.cpp 67:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test36.cpp 22:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test36.cpp 24:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test36.cpp 25:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test36.cpp 23:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test36.cpp 79:71 - code
+ var_decl ptr1 test36.cpp 69:14 - operand
+ integer_cst 64 - decl size
+ pointer_type - var type
+ integer_type - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ statement_list - operand
+ decl_expr test36.cpp 69:31 - statement
+ var_decl ptr1 test36.cpp 69:14 - operand
+ cleanup_point_expr test36.cpp 69:31 - statement
+ expr_stmt test36.cpp 69:31 - operand
+ convert_expr - expresssion
+ init_expr - operand
+ var_decl ptr1 test36.cpp 69:14 - operand
+ nop_expr - operand
+ call_expr test36.cpp 69:31 - operand
+ addr_expr - function
+ function_decl operator new [] <built-in> 0:0 - operand
+ - isAutogenerated: 1
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ pointer_type - function return type
+ tree_list - attribute
+ identifier_node alloc_size - purpose
+ tree_list - value
+ integer_cst 1 - value
+ tree_list - chain
+ identifier_node externally_visible - purpose
+ integer_cst 40 - arg
+ cleanup_point_expr test36.cpp 70:57 - statement
+ expr_stmt test36.cpp 70:57 - operand
+ call_expr test36.cpp 70:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownVars - operand
+ - stringLength: 10
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 71:64 - statement
+ expr_stmt test36.cpp 71:64 - operand
+ call_expr test36.cpp 71:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNonNullVars - operand
+ - stringLength: 17
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 72:57 - statement
+ expr_stmt test36.cpp 72:57 - operand
+ call_expr test36.cpp 72:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst knownNullVars - operand
+ - stringLength: 14
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 73:61 - statement
+ expr_stmt test36.cpp 73:61 - operand
+ call_expr test36.cpp 73:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst needCheckNullVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 74:55 - statement
+ expr_stmt test36.cpp 74:55 - operand
+ call_expr test36.cpp 74:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst addNullVars - operand
+ - stringLength: 12
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 75:61 - statement
+ expr_stmt test36.cpp 75:61 - operand
+ call_expr test36.cpp 75:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst removeNullVarsAll - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst - operand
+ - stringLength: 1
+ cleanup_point_expr test36.cpp 76:58 - statement
+ expr_stmt test36.cpp 76:58 - operand
+ call_expr test36.cpp 76:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedVars - operand
+ - stringLength: 11
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 77:64 - statement
+ expr_stmt test36.cpp 77:64 - operand
+ call_expr test36.cpp 77:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedVars - operand
+ - stringLength: 11
+ nop_expr - arg
+ addr_expr - operand
+ string_cst this->tmp1 - operand
+ - stringLength: 11
+ cleanup_point_expr test36.cpp 78:65 - statement
+ expr_stmt test36.cpp 78:65 - operand
+ call_expr test36.cpp 78:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedReverseVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst ptr1 - operand
+ - stringLength: 5
+ cleanup_point_expr test36.cpp 79:71 - statement
+ expr_stmt test36.cpp 79:71 - operand
+ call_expr test36.cpp 79:31 - expresssion
+ addr_expr - function
+ function_decl paranuckerInternalTest test36.cpp 20:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ void_type - function return type
+ nop_expr - arg
+ addr_expr - operand
+ string_cst = - operand
+ - stringLength: 2
+ nop_expr - arg
+ addr_expr - operand
+ string_cst linkedReverseVars - operand
+ - stringLength: 18
+ nop_expr - arg
+ addr_expr - operand
+ string_cst this->tmp1 - operand
+ - stringLength: 11
+ block - operand
+ var_decl ptr1 test36.cpp 69:14 - block vars
diff --git a/test/test36-02.txt b/test/test36-02.txt
new file mode 100644
index 0000000..d0355df
--- /dev/null
+++ b/test/test36-02.txt
@@ -0,0 +1,6 @@
+getData3:
+getData1:
+getData2:
+func1:
+func2:
+func3:
diff --git a/test/test36-03.txt b/test/test36-03.txt
new file mode 100644
index 0000000..f482b17
--- /dev/null
+++ b/test/test36-03.txt
@@ -0,0 +1,319 @@
+function_decl getData3:
+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 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 ptrval:
+integer_cst 64:
+function_decl getData1:
+return_expr :
+init_expr :
+result_decl :
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+function_decl getData2:
+return_expr :
+init_expr :
+result_decl :
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+function_decl func1:
+bind_expr :
+statement_list :
+decl_expr :
+var_decl ptr1:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+init_expr :
+var_decl ptr1:
+call_expr :
+addr_expr :
+function_decl operator new:
+integer_cst 32:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+var_decl ptr1:
+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 :
+var_decl ptr1:
+function_decl func2:
+bind_expr :
+statement_list :
+decl_expr :
+var_decl ptr1:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+init_expr :
+var_decl ptr1:
+call_expr :
+addr_expr :
+function_decl operator new []:
+integer_cst 320:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+var_decl ptr1:
+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 :
+var_decl ptr1:
+function_decl func3:
+bind_expr :
+statement_list :
+decl_expr :
+var_decl ptr1:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+init_expr :
+var_decl ptr1:
+call_expr :
+addr_expr :
+function_decl operator new []:
+integer_cst 40:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl paranuckerInternalTest:
+var_decl ptr1:
+integer_cst 64:
+pointer_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+block :
+var_decl ptr1:
diff --git a/test/test36-04.txt b/test/test36-04.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/test36-04.txt
diff --git a/test/test36-05.txt b/test/test36-05.txt
new file mode 100644
index 0000000..3c4777d
--- /dev/null
+++ b/test/test36-05.txt
@@ -0,0 +1,12 @@
+test36.cpp: In member function 'void Object1::func1()':
+test36.cpp:39:16: warning: unused variable 'ptr1' [-Wunused-variable]
+ Data1 *ptr1 = new Data1;
+ ^
+test36.cpp: In member function 'void Object1::func2()':
+test36.cpp:54:16: warning: unused variable 'ptr1' [-Wunused-variable]
+ Data1 *ptr1 = new Data1[10];
+ ^
+test36.cpp: In member function 'void Object1::func3()':
+test36.cpp:69:14: warning: unused variable 'ptr1' [-Wunused-variable]
+ int *ptr1 = new int[10];
+ ^
diff --git a/test/test36.cpp b/test/test36.cpp
new file mode 100644
index 0000000..84e9dea
--- /dev/null
+++ b/test/test36.cpp
@@ -0,0 +1,81 @@
+struct Data1;
+
+struct Data1
+{
+ int val;
+ Data1 *ptrval;
+ int arr[3];
+ Data1 *getData3()
+ {
+ return ptrval;
+ }
+};
+
+struct Data2 : public Data1
+{
+};
+
+int k;
+
+void paranuckerInternalTest(const char *action, const char *collection, const char *values);
+
+class Object1
+{
+ Data1 *tmp1;
+ Data1 *tmp2;
+
+ Data1 *getData1()
+ {
+ return tmp2;
+ }
+
+ Data1 *getData2() __attribute__((returns_nonnull))
+ {
+ return tmp2;
+ }
+
+ void func1()
+ {
+ Data1 *ptr1 = new Data1;
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ paranuckerInternalTest("=", "addNullVars", "");
+ paranuckerInternalTest("=", "removeNullVarsAll", "");
+ paranuckerInternalTest("=", "linkedVars", "ptr1");
+ paranuckerInternalTest("=", "linkedVars", "this->tmp1");
+ paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
+ paranuckerInternalTest("=", "linkedReverseVars", "this->tmp1");
+ }
+
+ void func2()
+ {
+ Data1 *ptr1 = new Data1[10];
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ paranuckerInternalTest("=", "addNullVars", "");
+ paranuckerInternalTest("=", "removeNullVarsAll", "");
+ paranuckerInternalTest("=", "linkedVars", "ptr1");
+ paranuckerInternalTest("=", "linkedVars", "this->tmp1");
+ paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
+ paranuckerInternalTest("=", "linkedReverseVars", "this->tmp1");
+ }
+
+ void func3()
+ {
+ int *ptr1 = new int[10];
+ paranuckerInternalTest("=", "knownVars", "ptr1");
+ paranuckerInternalTest("=", "knownNonNullVars", "ptr1");
+ paranuckerInternalTest("=", "knownNullVars", "");
+ paranuckerInternalTest("=", "needCheckNullVars", "");
+ paranuckerInternalTest("=", "addNullVars", "");
+ paranuckerInternalTest("=", "removeNullVarsAll", "");
+ paranuckerInternalTest("=", "linkedVars", "ptr1");
+ paranuckerInternalTest("=", "linkedVars", "this->tmp1");
+ paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
+ paranuckerInternalTest("=", "linkedReverseVars", "this->tmp1");
+ }
+};