diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-30 18:12:25 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-30 18:12:25 +0300 |
commit | 1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6 (patch) | |
tree | f7c7ddd2294f1e3a273048779f21c0104cfcae72 | |
parent | 125bcd31bd8b7e341bad7820331f65eb7cb91d0d (diff) | |
download | paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.tar.gz paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.tar.bz2 paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.tar.xz paranucker-1dd80bd16c02f5ab27cee82eb2d2ce5d55fe7fa6.zip |
Add test 27.
-rw-r--r-- | test/Makefile | 15 | ||||
-rw-r--r-- | test/test27-01.txt | 2187 | ||||
-rw-r--r-- | test/test27-02.txt | 14 | ||||
-rw-r--r-- | test/test27-03.txt | 844 | ||||
-rw-r--r-- | test/test27-04.txt | 32 | ||||
-rw-r--r-- | test/test27-05.txt | 32 | ||||
-rw-r--r-- | test/test27.cpp | 80 |
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; + } +}; |