summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-30 18:12:25 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-30 18:12:25 +0300
commit1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6 (patch)
treef7c7ddd2294f1e3a273048779f21c0104cfcae72
parent125bcd31bd8b7e341bad7820331f65eb7cb91d0d (diff)
downloadparanucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.tar.gz
paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.tar.bz2
paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.tar.xz
paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.zip
Add test 27.
-rw-r--r--test/Makefile15
-rw-r--r--test/test27-01.txt2187
-rw-r--r--test/test27-02.txt14
-rw-r--r--test/test27-03.txt844
-rw-r--r--test/test27-04.txt32
-rw-r--r--test/test27-05.txt32
-rw-r--r--test/test27.cpp80
7 files changed, 3203 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile
index 00d3c58..ea94603 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -30,7 +30,8 @@ TESTS23 = $(call TEST,23,5)
TESTS24 = $(call TEST,24,5)
TESTS25 = $(call TEST,25,5)
TESTS26 = $(call TEST,26,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
+TESTS27 = $(call TEST,27,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
ALLTESTS = $(foreach num,$(TESTNUMBERS),test$(num) ${TESTS$(num)})
.PHONY: ${ALLTESTS} ${CRASHES} all crashes
@@ -317,6 +318,18 @@ test26-04:
test26-05:
$(call CMDXX,detectnullpointers,test26.cpp,test26-05.txt,-O2 -std=c++0x -Wall -Wnonnull)
+test27: ${TESTS27}
+test27-01:
+ $(call CMDXX,dump,test27.cpp,test27-01.txt,-std=c++0x)
+test27-02:
+ $(call CMDXX,findargs,test27.cpp,test27-02.txt,-std=c++0x)
+test27-03:
+ $(call CMDXX,dumpnullpointers,test27.cpp,test27-03.txt,-std=c++0x)
+test27-04:
+ $(call CMDXX,detectnullpointers,test27.cpp,test27-04.txt,-std=c++0x)
+test27-05:
+ $(call CMDXX,detectnullpointers,test27.cpp,test27-05.txt,-O2 -std=c++0x -Wall -Wnonnull)
+
crashtest01:
$(call CMDXX,dump,crashtest01.h,crashtest01-01.txt)
crashtest02:
diff --git a/test/test27-01.txt b/test/test27-01.txt
new file mode 100644
index 0000000..2e30869
--- /dev/null
+++ b/test/test27-01.txt
@@ -0,0 +1,2187 @@
+function_decl Data1 test27.cpp 5:5
+- 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 Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 6:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 5:11 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test27.cpp 7:5 - code
+ statement_list - operand
+ block - operand
+function_decl __base_ctor test27.cpp 5:5
+- 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 Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 7:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 5:11 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test27.cpp 7:5 - code
+ statement_list - operand
+ block - operand
+function_decl __comp_ctor test27.cpp 5:5
+- 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 Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 7:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 5:11 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+function_decl Data1 test27.cpp 9:5
+- 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 Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 9:24 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 9:22 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr0 test27.cpp 9:18 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test27.cpp 12:5 - code
+ cleanup_point_expr test27.cpp 10:20 - operand
+ expr_stmt test27.cpp 10:20 - operand
+ convert_expr - expresssion
+ init_expr - operand
+ component_ref test27.cpp 10:20 - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test27.cpp 9:22 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl ptr0 test27.cpp 9:18 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ block - operand
+function_decl __base_ctor test27.cpp 9:5
+- 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 Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 12:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 9:22 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr0 test27.cpp 9:18 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test27.cpp 12:5 - code
+ cleanup_point_expr test27.cpp 10:20 - operand
+ expr_stmt test27.cpp 10:20 - operand
+ convert_expr - expresssion
+ init_expr - operand
+ component_ref test27.cpp 10:20 - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test27.cpp 9:22 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ - isUsed: 1
+ parm_decl ptr0 test27.cpp 9:18 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ block - operand
+function_decl __comp_ctor test27.cpp 9:5
+- 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 Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 12:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 9:22 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr0 test27.cpp 9:18 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+function_decl ftest1 test27.cpp 18:9
+- isPublic: 1
+ method_type - function type
+ integer_type - method return 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
+ record_type - method base type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 19:5 - function result
+ - isAutogenerated: 1
+ integer_type - result 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
+ integer_cst 32 - decl size
+ parm_decl this test27.cpp 18:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ return_expr test27.cpp 20:16 - code
+ init_expr - operand
+ result_decl test27.cpp 19:5 - operand
+ - isAutogenerated: 1
+ integer_type - result 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
+ integer_cst 32 - decl size
+ integer_cst 1 - operand
+function_decl ftest2 test27.cpp 23:16
+- isPublic: 1
+ function_type - function type
+ integer_type - function return 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
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 24:5 - function result
+ - isAutogenerated: 1
+ integer_type - result 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
+ integer_cst 32 - decl size
+ parm_decl ptr0 test27.cpp 23:30 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ return_expr test27.cpp 25:16 - code
+ init_expr - operand
+ result_decl test27.cpp 24:5 - operand
+ - isAutogenerated: 1
+ integer_type - result 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
+ integer_cst 32 - decl size
+ integer_cst 1 - operand
+function_decl Data2 test27.cpp 31:13
+- isVirtual: 1
+- 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 Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ integer_type - value
+ - 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
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test27.cpp 32:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 31:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ parm_decl __in_chrg test27.cpp 31:20 - argument
+ - isAutogenerated: 1
+ integer_type - decl 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
+ integer_cst 32 - parm size
+ must_not_throw_expr test27.cpp 31:13 - code
+ statement_list - operand
+ bind_expr test27.cpp 33:5 - statement
+ statement_list - operand
+ cleanup_point_expr test27.cpp 32:5 - statement
+ expr_stmt test27.cpp 32:5 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ pointer_plus_expr - operand
+ addr_expr - operand
+ var_decl _ZTV5Data2 test27.cpp 29:8 - operand
+ - isUsed: 1
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 256 - decl size
+ constructor - initial
+ array_type - constructor type
+ pointer_type - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ function_type - nested type
+ integer_type - function return 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
+ integer_type - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 - type size
+ integer_cst 0 - min value
+ integer_cst 3 - max value
+ nop_expr - value
+ integer_cst 0 - operand
+ nop_expr - value
+ addr_expr - operand
+ var_decl _ZTI5Data2 test27.cpp 29:8 - operand
+ - isAutogenerated: 1
+ integer_cst 128 - decl size
+ record_type - var type
+ type_decl __class_type_info_pseudo <built-in> 0:0 - type name
+ field_decl <built-in> 0:0 - field
+ - signed
+ integer_cst 128 - decl size
+ nop_expr - value
+ addr_expr - operand
+ function_decl __comp_dtor test27.cpp 31:13 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ nop_expr - value
+ addr_expr - operand
+ function_decl __deleting_dtor test27.cpp 31:13 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ array_type - var type
+ pointer_type - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ function_type - nested type
+ integer_type - function return 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
+ integer_type - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 - type size
+ integer_cst 0 - min value
+ integer_cst 3 - max value
+ integer_cst 16 - operand
+ cleanup_stmt test27.cpp 32:5 - statement
+ statement_list - body
+ modify_expr - expresssion
+ indirect_ref - operand
+ nop_expr - ref
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ constructor - operand
+ record_type - constructor type
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - signed
+ integer_cst 64 - decl size
+ block - operand
+ label_expr test27.cpp 33:5 - statement
+ label_decl test27.cpp 32:5 - operand
+ - isAutogenerated: 1
+ if_stmt test27.cpp 33:5 - statement
+ ne_expr - condition
+ bit_and_expr - operand
+ parm_decl __in_chrg test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ integer_type - decl 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
+ integer_cst 32 - parm size
+ integer_cst 1 - operand
+ integer_cst 0 - operand
+ cleanup_point_expr test27.cpp 33:5 - then
+ expr_stmt test27.cpp 33:5 - operand
+ call_expr test27.cpp 33:5 - expresssion
+ addr_expr - function
+ function_decl operator delete <built-in> 0:0 - operand
+ - isAutogenerated: 1
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ nop_expr - arg
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+function_decl __base_dtor test27.cpp 31:13
+- 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 Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test27.cpp 33:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 31:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ must_not_throw_expr test27.cpp 31:13 - code
+ statement_list - operand
+ bind_expr test27.cpp 33:5 - statement
+ statement_list - operand
+ cleanup_point_expr test27.cpp 32:5 - statement
+ expr_stmt test27.cpp 32:5 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ pointer_plus_expr - operand
+ addr_expr - operand
+ var_decl _ZTV5Data2 test27.cpp 29:8 - operand
+ - isUsed: 1
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 256 - decl size
+ constructor - initial
+ array_type - constructor type
+ pointer_type - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ function_type - nested type
+ integer_type - function return 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
+ integer_type - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 - type size
+ integer_cst 0 - min value
+ integer_cst 3 - max value
+ nop_expr - value
+ integer_cst 0 - operand
+ nop_expr - value
+ addr_expr - operand
+ var_decl _ZTI5Data2 test27.cpp 29:8 - operand
+ - isAutogenerated: 1
+ integer_cst 128 - decl size
+ record_type - var type
+ type_decl __class_type_info_pseudo <built-in> 0:0 - type name
+ field_decl <built-in> 0:0 - field
+ - signed
+ integer_cst 128 - decl size
+ nop_expr - value
+ addr_expr - operand
+ function_decl __comp_dtor test27.cpp 31:13 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ nop_expr - value
+ addr_expr - operand
+ function_decl __deleting_dtor test27.cpp 31:13 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ array_type - var type
+ pointer_type - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ function_type - nested type
+ integer_type - function return 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
+ integer_type - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 - type size
+ integer_cst 0 - min value
+ integer_cst 3 - max value
+ integer_cst 16 - operand
+ try_finally test27.cpp 32:5 - statement
+ statement_list - operand
+ modify_expr - operand
+ indirect_ref - operand
+ nop_expr - ref
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ constructor - operand
+ record_type - constructor type
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - signed
+ integer_cst 64 - decl size
+ block - operand
+ label_expr test27.cpp 33:5 - statement
+ label_decl test27.cpp 32:5 - operand
+ - isAutogenerated: 1
+ cond_expr test27.cpp 33:5 - statement
+ ne_expr - operand
+ bit_and_expr - operand
+ integer_cst 0 - operand
+ integer_cst 1 - operand
+ integer_cst 0 - operand
+ cleanup_point_expr test27.cpp 33:5 - operand
+ expr_stmt test27.cpp 33:5 - operand
+ call_expr test27.cpp 33:5 - expresssion
+ addr_expr - function
+ function_decl operator delete <built-in> 0:0 - operand
+ - isAutogenerated: 1
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ nop_expr - arg
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ nop_expr test27.cpp 33:5 - operand
+ integer_cst 0 - operand
+function_decl __comp_dtor test27.cpp 31:13
+- isVirtual: 1
+- 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 Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test27.cpp 33:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 31:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+function_decl __deleting_dtor test27.cpp 31:13
+- isVirtual: 1
+- 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 Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test27.cpp 33:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test27.cpp 31:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ call_expr test27.cpp 33:5 - statement
+ addr_expr - function
+ function_decl __comp_dtor test27.cpp 31:13 - operand
+ - isVirtual: 1
+ - isPublic: 1
+ method_type - function type
+ parm_decl this test27.cpp 31:20 - arg
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ label_expr - statement
+ label_decl test27.cpp 33:5 - operand
+ - isAutogenerated: 1
+ call_expr test27.cpp 33:5 - statement
+ addr_expr - function
+ function_decl operator delete <built-in> 0:0 - operand
+ - isAutogenerated: 1
+ - isExternal: 1
+ - isPublic: 1
+ function_type - function type
+ nop_expr - arg
+ parm_decl this test27.cpp 31:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test27.cpp 29:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test27.cpp 29:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test27.cpp 30:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+function_decl func1 test27.cpp 43: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 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 44:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl this test27.cpp 43:33 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 43:29 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ cleanup_point_expr test27.cpp 45:20 - statement
+ expr_stmt test27.cpp 45:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 45:9 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 43:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 43:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ if_stmt test27.cpp 46:9 - statement
+ ne_expr - condition
+ component_ref test27.cpp 46:13 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 43:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ integer_cst 0 - operand
+ statement_list - then
+ cleanup_point_expr test27.cpp 48:28 - statement
+ expr_stmt test27.cpp 48:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 48:19 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 43:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ cleanup_point_expr test27.cpp 49:28 - statement
+ expr_stmt test27.cpp 49:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 49:19 - operand
+ indirect_ref - object
+ component_ref test27.cpp 49:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 43:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+ statement_list - else
+ cleanup_point_expr test27.cpp 53:28 - statement
+ expr_stmt test27.cpp 53:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 53:19 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 43:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 300 - operand
+ cleanup_point_expr test27.cpp 54:28 - statement
+ expr_stmt test27.cpp 54:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 54:19 - operand
+ indirect_ref - object
+ component_ref test27.cpp 54:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 43:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 400 - operand
+ cleanup_point_expr test27.cpp 56:24 - statement
+ expr_stmt test27.cpp 56:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 56:15 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 43:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 500 - operand
+ cleanup_point_expr test27.cpp 57:24 - statement
+ expr_stmt test27.cpp 57:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 57:15 - operand
+ indirect_ref - object
+ component_ref test27.cpp 57:9 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 43:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 600 - operand
+function_decl func2 test27.cpp 60: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 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.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 test27.cpp 61:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 60:29 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ cleanup_point_expr test27.cpp 62:20 - statement
+ expr_stmt test27.cpp 62:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 62:9 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 60:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ cleanup_point_expr test27.cpp 63:20 - statement
+ expr_stmt test27.cpp 63:20 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 63:9 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ component_ref test27.cpp 63:16 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ if_stmt test27.cpp 64:9 - statement
+ ne_expr - condition
+ component_ref test27.cpp 64:13 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ integer_cst 0 - operand
+ statement_list - then
+ cleanup_point_expr test27.cpp 66:28 - statement
+ expr_stmt test27.cpp 66:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 66:19 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 60:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ cleanup_point_expr test27.cpp 67:28 - statement
+ expr_stmt test27.cpp 67:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 67:19 - operand
+ indirect_ref - object
+ component_ref test27.cpp 67:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+ cleanup_point_expr test27.cpp 68:28 - statement
+ expr_stmt test27.cpp 68:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 68:19 - operand
+ indirect_ref - object
+ component_ref test27.cpp 68:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 300 - operand
+ statement_list - else
+ cleanup_point_expr test27.cpp 72:28 - statement
+ expr_stmt test27.cpp 72:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 72:19 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 60:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 400 - operand
+ cleanup_point_expr test27.cpp 73:28 - statement
+ expr_stmt test27.cpp 73:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 73:19 - operand
+ indirect_ref - object
+ component_ref test27.cpp 73:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 500 - operand
+ cleanup_point_expr test27.cpp 74:28 - statement
+ expr_stmt test27.cpp 74:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 74:19 - operand
+ indirect_ref - object
+ component_ref test27.cpp 74:13 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 600 - operand
+ cleanup_point_expr test27.cpp 76:24 - statement
+ expr_stmt test27.cpp 76:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 76:15 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test27.cpp 60:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test27.cpp 3:8 - type name
+ - isAutogenerated: 1
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test27.cpp 15:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test27.cpp 16:14 - field
+ - signed
+ integer_cst 96 - decl size
+ type_decl Data1 test27.cpp 4:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 700 - operand
+ cleanup_point_expr test27.cpp 77:24 - statement
+ expr_stmt test27.cpp 77:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 77:15 - operand
+ indirect_ref - object
+ component_ref test27.cpp 77:9 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 800 - operand
+ cleanup_point_expr test27.cpp 78:24 - statement
+ expr_stmt test27.cpp 78:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test27.cpp 78:15 - operand
+ indirect_ref - object
+ component_ref test27.cpp 78:9 - ref
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl this test27.cpp 60:33 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test27.cpp 38:7 - type name
+ - isAutogenerated: 1
+ field_decl tmp1 test27.cpp 40:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ type_decl Object1 test27.cpp 39:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl tmp2 test27.cpp 41:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl val test27.cpp 14:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 900 - operand
diff --git a/test/test27-02.txt b/test/test27-02.txt
new file mode 100644
index 0000000..6f837a2
--- /dev/null
+++ b/test/test27-02.txt
@@ -0,0 +1,14 @@
+Data1:
+__base_ctor :
+__comp_ctor :
+Data1: pointer_type ptr0,
+__base_ctor : pointer_type ptr0,
+__comp_ctor : pointer_type ptr0,
+ftest1:
+ftest2: pointer_type ptr0,
+Data2:
+__base_dtor :
+__comp_dtor :
+__deleting_dtor :
+func1: pointer_type ptr1,
+func2: pointer_type ptr1,
diff --git a/test/test27-03.txt b/test/test27-03.txt
new file mode 100644
index 0000000..9e57cfe
--- /dev/null
+++ b/test/test27-03.txt
@@ -0,0 +1,844 @@
+function_decl Data1:
+bind_expr :
+statement_list :
+block :
+function_decl __base_ctor :
+bind_expr :
+statement_list :
+block :
+function_decl __comp_ctor :
+statement_list :
+function_decl Data1:
+bind_expr : ptr0,
+cleanup_point_expr : ptr0,
+expr_stmt : ptr0,
+convert_expr : ptr0,
+init_expr : ptr0,
+component_ref : ptr0, this->ptrval,
+indirect_ref : ptr0, this->ptrval,
+parm_decl this: ptr0, this->ptrval,
+pointer_type : ptr0, this->ptrval,
+record_type : ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+field_decl val: ptr0, this->ptrval,
+integer_cst 32: ptr0, this->ptrval,
+field_decl ptrval: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+field_decl arr: ptr0, this->ptrval,
+integer_cst 96: ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+field_decl ptrval: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+parm_decl ptr0: ptr0, this->ptrval,
+pointer_type : ptr0, this->ptrval,
+record_type : ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+field_decl val: ptr0, this->ptrval,
+integer_cst 32: ptr0, this->ptrval,
+field_decl ptrval: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+field_decl arr: ptr0, this->ptrval,
+integer_cst 96: ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+block : ptr0, this->ptrval,
+function_decl __base_ctor :
+bind_expr : ptr0,
+cleanup_point_expr : ptr0,
+expr_stmt : ptr0,
+convert_expr : ptr0,
+init_expr : ptr0,
+component_ref : ptr0, this->ptrval,
+indirect_ref : ptr0, this->ptrval,
+parm_decl this: ptr0, this->ptrval,
+pointer_type : ptr0, this->ptrval,
+record_type : ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+field_decl val: ptr0, this->ptrval,
+integer_cst 32: ptr0, this->ptrval,
+field_decl ptrval: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+field_decl arr: ptr0, this->ptrval,
+integer_cst 96: ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+field_decl ptrval: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+parm_decl ptr0: ptr0, this->ptrval,
+pointer_type : ptr0, this->ptrval,
+record_type : ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+field_decl val: ptr0, this->ptrval,
+integer_cst 32: ptr0, this->ptrval,
+field_decl ptrval: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+field_decl arr: ptr0, this->ptrval,
+integer_cst 96: ptr0, this->ptrval,
+type_decl Data1: ptr0, this->ptrval,
+integer_cst 64: ptr0, this->ptrval,
+block : ptr0, this->ptrval,
+function_decl __comp_ctor :
+statement_list : ptr0,
+function_decl ftest1:
+return_expr :
+init_expr :
+result_decl :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 32:
+integer_cst 1:
+function_decl ftest2:
+return_expr : ptr0,
+init_expr : ptr0,
+result_decl : ptr0,
+integer_type : ptr0,
+type_decl int: ptr0,
+integer_cst 32: ptr0,
+integer_cst -2147483648: ptr0,
+integer_cst 2147483647: ptr0,
+integer_cst 32: ptr0,
+integer_cst 1: ptr0,
+function_decl Data2:
+must_not_throw_expr :
+statement_list :
+bind_expr :
+statement_list :
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+field_decl _vptr.Data2:
+integer_cst 64:
+pointer_plus_expr :
+addr_expr :
+var_decl _ZTV5Data2:
+integer_cst 256:
+constructor :
+array_type :
+pointer_type :
+type_decl __vtbl_ptr_type:
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 3:
+integer_cst 0:
+addr_expr :
+var_decl _ZTI5Data2:
+integer_cst 128:
+record_type :
+type_decl __class_type_info_pseudo:
+field_decl :
+integer_cst 128:
+addr_expr :
+function_decl __comp_dtor :
+addr_expr :
+function_decl __deleting_dtor :
+array_type :
+pointer_type :
+type_decl __vtbl_ptr_type:
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 3:
+integer_cst 16:
+cleanup_stmt :
+statement_list :
+modify_expr :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+constructor :
+record_type :
+field_decl _vptr.Data2:
+integer_cst 64:
+block :
+label_expr :
+label_decl :
+if_stmt :
+ne_expr :
+bit_and_expr :
+parm_decl __in_chrg:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 32:
+integer_cst 1:
+integer_cst 0:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl operator delete:
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+function_decl __base_dtor :
+must_not_throw_expr :
+statement_list :
+bind_expr :
+statement_list :
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+field_decl _vptr.Data2:
+integer_cst 64:
+pointer_plus_expr :
+addr_expr :
+var_decl _ZTV5Data2:
+integer_cst 256:
+constructor :
+array_type :
+pointer_type :
+type_decl __vtbl_ptr_type:
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 3:
+integer_cst 0:
+addr_expr :
+var_decl _ZTI5Data2:
+integer_cst 128:
+record_type :
+type_decl __class_type_info_pseudo:
+field_decl :
+integer_cst 128:
+addr_expr :
+function_decl __comp_dtor :
+addr_expr :
+function_decl __deleting_dtor :
+array_type :
+pointer_type :
+type_decl __vtbl_ptr_type:
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 3:
+integer_cst 16:
+try_finally :
+statement_list :
+modify_expr :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+constructor :
+record_type :
+field_decl _vptr.Data2:
+integer_cst 64:
+block :
+label_expr :
+label_decl :
+cond_expr :
+ne_expr :
+bit_and_expr :
+integer_cst 0:
+integer_cst 1:
+integer_cst 0:
+cleanup_point_expr :
+expr_stmt :
+call_expr :
+addr_expr :
+function_decl operator delete:
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+integer_cst 0:
+function_decl __comp_dtor :
+statement_list :
+function_decl __deleting_dtor :
+statement_list :
+call_expr :
+addr_expr :
+function_decl __comp_dtor :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+label_expr :
+label_decl :
+call_expr :
+addr_expr :
+function_decl operator delete:
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+function_decl func1:
+statement_list : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+convert_expr : ptr1,
+modify_expr : ptr1,
+component_ref : ptr1, this->tmp1,
+indirect_ref : ptr1, this->tmp1,
+parm_decl this: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp2: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+parm_decl ptr1: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+field_decl ptrval: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl arr: ptr1, this->tmp1,
+integer_cst 96: ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+if_stmt : ptr1, this->tmp1,
+ne_expr : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+indirect_ref : ptr1, this->tmp1,
+parm_decl this: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp2: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+integer_cst 0: ptr1, this->tmp1,
+statement_list :
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 100:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 200:
+statement_list : ptr1, this->tmp1,
+cleanup_point_expr : ptr1, this->tmp1,
+expr_stmt : ptr1, this->tmp1,
+convert_expr : ptr1, this->tmp1,
+modify_expr : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+test27.cpp: In member function 'void Object1::func1(Data1*)':
+test27.cpp:53:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+indirect_ref : ptr1, this->tmp1,
+parm_decl ptr1: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+field_decl ptrval: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl arr: ptr1, this->tmp1,
+integer_cst 96: ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+integer_cst 300: ptr1, this->tmp1,
+cleanup_point_expr : ptr1, this->tmp1,
+expr_stmt : ptr1, this->tmp1,
+convert_expr : ptr1, this->tmp1,
+modify_expr : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+test27.cpp:54:19: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 400;
+ ^
+indirect_ref : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+indirect_ref : ptr1, this->tmp1,
+parm_decl this: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp2: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+integer_cst 400: ptr1, this->tmp1,
+cleanup_point_expr : ptr1, this->tmp1,
+expr_stmt : ptr1, this->tmp1,
+convert_expr : ptr1, this->tmp1,
+modify_expr : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+test27.cpp:56:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 500;
+ ^
+indirect_ref : ptr1, this->tmp1,
+parm_decl ptr1: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+field_decl ptrval: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl arr: ptr1, this->tmp1,
+integer_cst 96: ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+integer_cst 500: ptr1, this->tmp1,
+cleanup_point_expr : ptr1, this->tmp1,
+expr_stmt : ptr1, this->tmp1,
+convert_expr : ptr1, this->tmp1,
+modify_expr : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+test27.cpp:57:15: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 600;
+ ^
+indirect_ref : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1,
+indirect_ref : ptr1, this->tmp1,
+parm_decl this: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp2: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+integer_cst 600: ptr1, this->tmp1,
+function_decl func2:
+statement_list : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+convert_expr : ptr1,
+modify_expr : ptr1,
+component_ref : ptr1, this->tmp1,
+indirect_ref : ptr1, this->tmp1,
+parm_decl this: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp2: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+type_decl Object1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl tmp1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+parm_decl ptr1: ptr1, this->tmp1,
+pointer_type : ptr1, this->tmp1,
+record_type : ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+field_decl val: ptr1, this->tmp1,
+integer_cst 32: ptr1, this->tmp1,
+field_decl ptrval: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+field_decl arr: ptr1, this->tmp1,
+integer_cst 96: ptr1, this->tmp1,
+type_decl Data1: ptr1, this->tmp1,
+integer_cst 64: ptr1, this->tmp1,
+cleanup_point_expr : ptr1, this->tmp1,
+expr_stmt : ptr1, this->tmp1,
+convert_expr : ptr1, this->tmp1,
+modify_expr : ptr1, this->tmp1,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+if_stmt : ptr1, this->tmp1, this->tmp2,
+ne_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+integer_cst 0: ptr1, this->tmp1, this->tmp2,
+statement_list :
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 100:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 200:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl tmp1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+type_decl Object1:
+integer_cst 64:
+field_decl tmp2:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 300:
+statement_list : ptr1, this->tmp1, this->tmp2,
+cleanup_point_expr : ptr1, this->tmp1, this->tmp2,
+expr_stmt : ptr1, this->tmp1, this->tmp2,
+convert_expr : ptr1, this->tmp1, this->tmp2,
+modify_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+test27.cpp: In member function 'void Object1::func2(Data1*)':
+test27.cpp:72:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 400;
+ ^
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl ptr1: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Data1: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+field_decl ptrval: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl arr: ptr1, this->tmp1, this->tmp2,
+integer_cst 96: ptr1, this->tmp1, this->tmp2,
+type_decl Data1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+integer_cst 400: ptr1, this->tmp1, this->tmp2,
+cleanup_point_expr : ptr1, this->tmp1, this->tmp2,
+expr_stmt : ptr1, this->tmp1, this->tmp2,
+convert_expr : ptr1, this->tmp1, this->tmp2,
+modify_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+test27.cpp:73:19: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 500;
+ ^
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+integer_cst 500: ptr1, this->tmp1, this->tmp2,
+cleanup_point_expr : ptr1, this->tmp1, this->tmp2,
+expr_stmt : ptr1, this->tmp1, this->tmp2,
+convert_expr : ptr1, this->tmp1, this->tmp2,
+modify_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+test27.cpp:74:19: warning: Using field 'this->tmp2' without checking for null pointer
+ tmp2->val = 600;
+ ^
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+integer_cst 600: ptr1, this->tmp1, this->tmp2,
+cleanup_point_expr : ptr1, this->tmp1, this->tmp2,
+expr_stmt : ptr1, this->tmp1, this->tmp2,
+convert_expr : ptr1, this->tmp1, this->tmp2,
+modify_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+test27.cpp:76:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 700;
+ ^
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl ptr1: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Data1: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+field_decl ptrval: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl arr: ptr1, this->tmp1, this->tmp2,
+integer_cst 96: ptr1, this->tmp1, this->tmp2,
+type_decl Data1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+integer_cst 700: ptr1, this->tmp1, this->tmp2,
+cleanup_point_expr : ptr1, this->tmp1, this->tmp2,
+expr_stmt : ptr1, this->tmp1, this->tmp2,
+convert_expr : ptr1, this->tmp1, this->tmp2,
+modify_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+test27.cpp:77:15: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 800;
+ ^
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+integer_cst 800: ptr1, this->tmp1, this->tmp2,
+cleanup_point_expr : ptr1, this->tmp1, this->tmp2,
+expr_stmt : ptr1, this->tmp1, this->tmp2,
+convert_expr : ptr1, this->tmp1, this->tmp2,
+modify_expr : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+test27.cpp:78:15: warning: Using field 'this->tmp2' without checking for null pointer
+ tmp2->val = 900;
+ ^
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+component_ref : ptr1, this->tmp1, this->tmp2,
+indirect_ref : ptr1, this->tmp1, this->tmp2,
+parm_decl this: ptr1, this->tmp1, this->tmp2,
+pointer_type : ptr1, this->tmp1, this->tmp2,
+record_type : ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+field_decl tmp1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+type_decl Object1: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl tmp2: ptr1, this->tmp1, this->tmp2,
+integer_cst 64: ptr1, this->tmp1, this->tmp2,
+field_decl val: ptr1, this->tmp1, this->tmp2,
+integer_cst 32: ptr1, this->tmp1, this->tmp2,
+integer_cst 900: ptr1, this->tmp1, this->tmp2,
diff --git a/test/test27-04.txt b/test/test27-04.txt
new file mode 100644
index 0000000..384a4d4
--- /dev/null
+++ b/test/test27-04.txt
@@ -0,0 +1,32 @@
+test27.cpp: In member function 'void Object1::func1(Data1*)':
+test27.cpp:53:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+test27.cpp:54:19: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 400;
+ ^
+test27.cpp:56:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 500;
+ ^
+test27.cpp:57:15: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 600;
+ ^
+test27.cpp: In member function 'void Object1::func2(Data1*)':
+test27.cpp:72:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 400;
+ ^
+test27.cpp:73:19: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 500;
+ ^
+test27.cpp:74:19: warning: Using field 'this->tmp2' without checking for null pointer
+ tmp2->val = 600;
+ ^
+test27.cpp:76:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 700;
+ ^
+test27.cpp:77:15: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 800;
+ ^
+test27.cpp:78:15: warning: Using field 'this->tmp2' without checking for null pointer
+ tmp2->val = 900;
+ ^
diff --git a/test/test27-05.txt b/test/test27-05.txt
new file mode 100644
index 0000000..384a4d4
--- /dev/null
+++ b/test/test27-05.txt
@@ -0,0 +1,32 @@
+test27.cpp: In member function 'void Object1::func1(Data1*)':
+test27.cpp:53:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+test27.cpp:54:19: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 400;
+ ^
+test27.cpp:56:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 500;
+ ^
+test27.cpp:57:15: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 600;
+ ^
+test27.cpp: In member function 'void Object1::func2(Data1*)':
+test27.cpp:72:19: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 400;
+ ^
+test27.cpp:73:19: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 500;
+ ^
+test27.cpp:74:19: warning: Using field 'this->tmp2' without checking for null pointer
+ tmp2->val = 600;
+ ^
+test27.cpp:76:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 700;
+ ^
+test27.cpp:77:15: warning: Using field 'this->tmp1' without checking for null pointer
+ tmp1->val = 800;
+ ^
+test27.cpp:78:15: warning: Using field 'this->tmp2' without checking for null pointer
+ tmp2->val = 900;
+ ^
diff --git a/test/test27.cpp b/test/test27.cpp
new file mode 100644
index 0000000..059c6c7
--- /dev/null
+++ b/test/test27.cpp
@@ -0,0 +1,80 @@
+struct Data1;
+
+struct Data1
+{
+ Data1()
+ {
+ }
+
+ Data1(Data1 *ptr0) :
+ ptrval(ptr0)
+ {
+ }
+
+ int val;
+ Data1 *ptrval;
+ int arr[3];
+
+ int ftest1()
+ {
+ return 1;
+ }
+
+ static int ftest2(Data1 *ptr0)
+ {
+ return 1;
+ }
+};
+
+struct Data2
+{
+ virtual ~Data2()
+ {
+ }
+};
+
+int k;
+
+class Object1
+{
+ Data1 *tmp1;
+ Data1 *tmp2;
+
+ void func1(Data1 *const ptr1)
+ {
+ tmp1 = ptr1;
+ if (tmp1)
+ {
+ ptr1->val = 100;
+ tmp1->val = 200;
+ }
+ else
+ {
+ ptr1->val = 300;
+ tmp1->val = 400;
+ }
+ ptr1->val = 500;
+ tmp1->val = 600;
+ }
+
+ void func2(Data1 *const ptr1)
+ {
+ tmp1 = ptr1;
+ tmp2 = tmp1;
+ if (tmp2)
+ {
+ ptr1->val = 100;
+ tmp1->val = 200;
+ tmp2->val = 300;
+ }
+ else
+ {
+ ptr1->val = 400;
+ tmp1->val = 500;
+ tmp2->val = 600;
+ }
+ ptr1->val = 700;
+ tmp1->val = 800;
+ tmp2->val = 900;
+ }
+};