summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/test26-01.txt1712
-rw-r--r--test/test26-02.txt23
-rw-r--r--test/test26-03.txt623
-rw-r--r--test/test26-04.txt6
-rw-r--r--test/test26-05.txt6
-rw-r--r--test/test26.cpp42
6 files changed, 2391 insertions, 21 deletions
diff --git a/test/test26-01.txt b/test/test26-01.txt
index 5a64982..59d4137 100644
--- a/test/test26-01.txt
+++ b/test/test26-01.txt
@@ -39589,23 +39589,634 @@ function_decl ftest2 test26.cpp 27:16
integer_cst 2147483647 - max value
integer_cst 32 - decl size
integer_cst 1 - operand
-function_decl func1 test26.cpp 37:10
+function_decl Data2 test26.cpp 35: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 Object1 test26.cpp 35:7 - type name
+ type_decl Data2 test26.cpp 33:8 - type name
- isAutogenerated: 1
- type_decl Object1 test26.cpp 36:1 - field
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34: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 test26.cpp 36:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 35:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ parm_decl __in_chrg test26.cpp 35: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 test26.cpp 35:13 - code
+ statement_list - operand
+ bind_expr test26.cpp 37:5 - statement
+ statement_list - operand
+ cleanup_point_expr test26.cpp 36:5 - statement
+ expr_stmt test26.cpp 36:5 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ pointer_plus_expr - operand
+ addr_expr - operand
+ var_decl _ZTV5Data2 test26.cpp 33: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 test26.cpp 33: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 test26.cpp 35:13 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ nop_expr - value
+ addr_expr - operand
+ function_decl __deleting_dtor test26.cpp 35: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 test26.cpp 36:5 - statement
+ statement_list - body
+ modify_expr - expresssion
+ indirect_ref - operand
+ nop_expr - ref
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ constructor - operand
+ record_type - constructor type
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - signed
+ integer_cst 64 - decl size
+ block - operand
+ label_expr test26.cpp 37:5 - statement
+ label_decl test26.cpp 36:5 - operand
+ - isAutogenerated: 1
+ if_stmt test26.cpp 37:5 - statement
+ ne_expr - condition
+ bit_and_expr - operand
+ parm_decl __in_chrg test26.cpp 35: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 test26.cpp 37:5 - then
+ expr_stmt test26.cpp 37:5 - operand
+ call_expr test26.cpp 37:5 - expresssion
+ addr_expr - function
+ function_decl operator delete /usr/include/c++/5/new 115:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ tree_list - attribute
+ identifier_node __externally_visible__ - purpose
+ function_type - function type
+ nop_expr - arg
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+function_decl __base_dtor test26.cpp 35: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 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 37:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 35:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ must_not_throw_expr test26.cpp 35:13 - code
+ statement_list - operand
+ bind_expr test26.cpp 37:5 - statement
+ statement_list - operand
+ cleanup_point_expr test26.cpp 36:5 - statement
+ expr_stmt test26.cpp 36:5 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ pointer_plus_expr - operand
+ addr_expr - operand
+ var_decl _ZTV5Data2 test26.cpp 33: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 test26.cpp 33: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 test26.cpp 35:13 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ nop_expr - value
+ addr_expr - operand
+ function_decl __deleting_dtor test26.cpp 35: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 test26.cpp 36:5 - statement
+ statement_list - operand
+ modify_expr - operand
+ indirect_ref - operand
+ nop_expr - ref
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ constructor - operand
+ record_type - constructor type
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - signed
+ integer_cst 64 - decl size
+ block - operand
+ label_expr test26.cpp 37:5 - statement
+ label_decl test26.cpp 36:5 - operand
+ - isAutogenerated: 1
+ cond_expr test26.cpp 37:5 - statement
+ ne_expr - operand
+ bit_and_expr - operand
+ integer_cst 0 - operand
+ integer_cst 1 - operand
+ integer_cst 0 - operand
+ cleanup_point_expr test26.cpp 37:5 - operand
+ expr_stmt test26.cpp 37:5 - operand
+ call_expr test26.cpp 37:5 - expresssion
+ addr_expr - function
+ function_decl operator delete /usr/include/c++/5/new 115:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ tree_list - attribute
+ identifier_node __externally_visible__ - purpose
+ function_type - function type
+ nop_expr - arg
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ nop_expr test26.cpp 37:5 - operand
+ integer_cst 0 - operand
+function_decl __comp_dtor test26.cpp 35: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 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 37:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 35:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+function_decl __deleting_dtor test26.cpp 35: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 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
- isAutogenerated: 1
tree_list - arg types
pointer_type - value
record_type - nested type
- type_decl Object1 test26.cpp 35:7 - type name
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
- isAutogenerated: 1
- type_decl Object1 test26.cpp 36:1 - field
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 37:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 35:20 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ call_expr test26.cpp 37:5 - statement
+ addr_expr - function
+ function_decl __comp_dtor test26.cpp 35:13 - operand
+ - isVirtual: 1
+ - isPublic: 1
+ method_type - function type
+ parm_decl this test26.cpp 35:20 - arg
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ label_expr - statement
+ label_decl test26.cpp 37:5 - operand
+ - isAutogenerated: 1
+ call_expr test26.cpp 37:5 - statement
+ addr_expr - function
+ function_decl operator delete /usr/include/c++/5/new 115:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ tree_list - attribute
+ identifier_node __externally_visible__ - purpose
+ function_type - function type
+ nop_expr - arg
+ parm_decl this test26.cpp 35:20 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+function_decl func1 test26.cpp 44: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 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
- isAutogenerated: 1
tree_list - chain
pointer_type - value
@@ -39630,22 +40241,22 @@ function_decl func1 test26.cpp 37:10
void_type - value
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
- result_decl test26.cpp 38:5 - function result
+ result_decl test26.cpp 45:5 - function result
- isAutogenerated: 1
void_type - result type
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
- parm_decl this test26.cpp 37:33 - argument
+ parm_decl this test26.cpp 44:33 - argument
- isAutogenerated: 1
pointer_type - decl type
record_type - nested type
- type_decl Object1 test26.cpp 35:7 - type name
+ type_decl Object1 test26.cpp 42:7 - type name
- isAutogenerated: 1
- type_decl Object1 test26.cpp 36:1 - field
+ type_decl Object1 test26.cpp 43:1 - field
- isAutogenerated: 1
integer_cst 64 - parm size
- isUsed: 1
- parm_decl ptr1 test26.cpp 37:29 - argument
+ parm_decl ptr1 test26.cpp 44:29 - argument
pointer_type - decl type
record_type - nested type
type_decl Data1 test26.cpp 6:8 - type name
@@ -39665,11 +40276,11 @@ function_decl func1 test26.cpp 37:10
type_decl Data1 test26.cpp 7:1 - field
- isAutogenerated: 1
integer_cst 64 - parm size
- if_stmt test26.cpp 39:9 - code
+ if_stmt test26.cpp 46:9 - code
ne_expr - condition
nop_expr - operand
- isUsed: 1
- parm_decl ptr1 test26.cpp 37:29 - operand
+ parm_decl ptr1 test26.cpp 44:29 - operand
pointer_type - decl type
record_type - nested type
type_decl Data1 test26.cpp 6:8 - type name
@@ -39690,12 +40301,12 @@ function_decl func1 test26.cpp 37:10
- isAutogenerated: 1
integer_cst 64 - parm size
integer_cst 0 - operand
- if_stmt test26.cpp 41:13 - then
- truth_andif_expr test26.cpp 41:22 - condition
+ if_stmt test26.cpp 48:13 - then
+ truth_andif_expr test26.cpp 48:22 - condition
ne_expr - operand
nop_expr - operand
- isUsed: 1
- parm_decl ptr1 test26.cpp 37:29 - operand
+ parm_decl ptr1 test26.cpp 44:29 - operand
pointer_type - decl type
record_type - nested type
type_decl Data1 test26.cpp 6:8 - type name
@@ -39716,8 +40327,8 @@ function_decl func1 test26.cpp 37:10
- isAutogenerated: 1
integer_cst 64 - parm size
integer_cst 0 - operand
- eq_expr test26.cpp 41:27 - operand
- var_decl k test26.cpp 33:5 - operand
+ eq_expr test26.cpp 48:27 - operand
+ var_decl k test26.cpp 40:5 - operand
- isUsed: 1
integer_cst 32 - decl size
integer_type - var type
@@ -39729,7 +40340,1072 @@ function_decl func1 test26.cpp 37:10
integer_cst -2147483648 - min value
integer_cst 2147483647 - max value
integer_cst 1 - operand
- return_expr test26.cpp 42:17 - then
+ return_expr test26.cpp 49:17 - then
+function_decl func2 test26.cpp 53: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 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 54:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 53:33 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 53:29 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ if_stmt test26.cpp 55:9 - code
+ eq_expr test26.cpp 55:14 - condition
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 53:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ if_stmt test26.cpp 57:13 - then
+ truth_andif_expr test26.cpp 57:23 - condition
+ eq_expr test26.cpp 57:18 - operand
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 53:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test26.cpp 57:28 - operand
+ var_decl k test26.cpp 40:5 - operand
+ - isUsed: 1
+ integer_cst 32 - decl size
+ integer_type - var 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 1 - operand
+ return_expr test26.cpp 58:17 - then
+function_decl Data1 test26.cpp 6:8
+- isAutogenerated: 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 Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7: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 test26.cpp 6:8 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 68:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ parm_decl __in_chrg test26.cpp 68:16 - 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
+ statement_list - code
+ bind_expr test26.cpp 6:8 - statement
+ cleanup_stmt test26.cpp 6:8 - operand
+ statement_list - body
+ cleanup_stmt test26.cpp 6:8 - statement
+ statement_list - body
+ call_expr test26.cpp 6:8 - expresssion
+ addr_expr - function
+ function_decl __comp_dtor /usr/include/c++/5/bits/basic_string.h 2942:7 - operand
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ addr_expr - arg
+ component_ref test26.cpp 6:8 - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test26.cpp 68:16 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ modify_expr - expresssion
+ indirect_ref - operand
+ nop_expr - ref
+ parm_decl this test26.cpp 68:16 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ constructor - operand
+ record_type - constructor type
+ field_decl val test26.cpp 6:8 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 6:8 - field
+ - signed
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 6:8 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 6:8 - field
+ - signed
+ integer_cst 64 - decl size
+ block - operand
+ label_expr test26.cpp 6:8 - statement
+ label_decl test26.cpp 6:8 - operand
+ - isAutogenerated: 1
+function_decl __base_dtor test26.cpp 6:8
+- isAutogenerated: 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 Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 6:8 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 68:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ bind_expr test26.cpp 6:8 - statement
+ try_finally test26.cpp 6:8 - operand
+ statement_list - operand
+ try_finally test26.cpp 6:8 - statement
+ statement_list - operand
+ call_expr test26.cpp 6:8 - operand
+ addr_expr - function
+ function_decl __comp_dtor /usr/include/c++/5/bits/basic_string.h 2942:7 - operand
+ - isExternal: 1
+ - isPublic: 1
+ method_type - function type
+ addr_expr - arg
+ component_ref test26.cpp 6:8 - operand
+ indirect_ref - object
+ nop_expr - ref
+ parm_decl this test26.cpp 68:16 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ modify_expr - operand
+ indirect_ref - operand
+ nop_expr - ref
+ parm_decl this test26.cpp 68:16 - operand
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ constructor - operand
+ record_type - constructor type
+ field_decl val test26.cpp 6:8 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 6:8 - field
+ - signed
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 6:8 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 6:8 - field
+ - signed
+ integer_cst 64 - decl size
+ block - operand
+ label_expr test26.cpp 6:8 - statement
+ label_decl test26.cpp 6:8 - operand
+ - isAutogenerated: 1
+function_decl __comp_dtor test26.cpp 6:8
+- isAutogenerated: 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 Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 6:8 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 68:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+function_decl func3 test26.cpp 62: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 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 63:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 62:33 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 62:29 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test26.cpp 64:9 - statement
+ eq_expr test26.cpp 64:14 - condition
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 62:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ return_expr test26.cpp 66:13 - then
+ cleanup_point_expr test26.cpp 68:20 - statement
+ expr_stmt test26.cpp 68:20 - operand
+ cond_expr - expresssion
+ ne_expr - operand
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 62:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ compound_expr - operand
+ call_expr test26.cpp 68:16 - operand
+ addr_expr - function
+ function_decl __comp_dtor test26.cpp 6:8 - operand
+ - isAutogenerated: 1
+ - isPublic: 1
+ method_type - function type
+ nop_expr - arg
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 62:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ call_expr test26.cpp 68:16 - operand
+ addr_expr - function
+ function_decl operator delete /usr/include/c++/5/new 115:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ tree_list - attribute
+ identifier_node __externally_visible__ - purpose
+ function_type - function type
+ nop_expr - arg
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 62:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ void_cst - operand
+function_decl func4 test26.cpp 71: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 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 72:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test26.cpp 71:33 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test26.cpp 42:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test26.cpp 43:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 71:29 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test26.cpp 73:9 - statement
+ ne_expr - condition
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 71:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ return_expr test26.cpp 75:13 - then
+ cleanup_point_expr test26.cpp 77:20 - statement
+ expr_stmt test26.cpp 77:20 - operand
+ cond_expr - expresssion
+ ne_expr - operand
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 71:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ compound_expr - operand
+ call_expr test26.cpp 77:16 - operand
+ addr_expr - function
+ function_decl __comp_dtor test26.cpp 6:8 - operand
+ - isAutogenerated: 1
+ - isPublic: 1
+ method_type - function type
+ nop_expr - arg
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 71:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ call_expr test26.cpp 77:16 - operand
+ addr_expr - function
+ function_decl operator delete /usr/include/c++/5/new 115:6 - operand
+ - isExternal: 1
+ - isPublic: 1
+ tree_list - attribute
+ identifier_node __externally_visible__ - purpose
+ function_type - function type
+ nop_expr - arg
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 71:29 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test26.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test26.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test26.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test26.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test26.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test26.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ void_cst - operand
+function_decl func5 test26.cpp 80:17
+- isPublic: 1
+ function_type - function type
+ void_type - function return type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test26.cpp 81:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 80:36 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test26.cpp 82:9 - statement
+ eq_expr test26.cpp 82:14 - condition
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 80:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ return_expr test26.cpp 83:13 - then
+ cleanup_point_expr test26.cpp 85:20 - statement
+ expr_stmt test26.cpp 85:20 - operand
+ cond_expr - expresssion
+ ne_expr - operand
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 80:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ call_expr test26.cpp 85:16 - operand
+ obj_type_ref - function
+ indirect_ref test26.cpp 85:16 - operand
+ pointer_plus_expr test26.cpp 85:16 - ref
+ component_ref - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 80:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ integer_cst 8 - operand
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 80:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 1 - operand
+ nop_expr - arg
+ - isUsed: 1
+ parm_decl ptr1 test26.cpp 80:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data2 test26.cpp 33:8 - type name
+ - isAutogenerated: 1
+ field_decl _vptr.Data2 test26.cpp 33:8 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 - decl size
+ type_decl Data2 test26.cpp 34:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ void_cst - operand
function_decl c_str /usr/include/c++/5/bits/basic_string.h 4215:7
- isExternal: 1
- isPublic: 1
diff --git a/test/test26-02.txt b/test/test26-02.txt
index 14ae93e..53ff2f8 100644
--- a/test/test26-02.txt
+++ b/test/test26-02.txt
@@ -287,7 +287,30 @@ __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,
+Data1:
+__base_dtor :
+__comp_dtor :
+func3: pointer_type ptr1,
+test26.cpp: In member function 'void Object1::func3(Data1*)':
+test26.cpp:68:16: warning: Using parameter 'ptr1' without checking for null pointer
+ delete ptr1;
+ ^
+func4: pointer_type ptr1,
+test26.cpp: In member function 'void Object1::func4(Data1*)':
+test26.cpp:77:16: warning: Using parameter 'ptr1' without checking for null pointer
+ delete ptr1;
+ ^
+func5: pointer_type ptr1,
+test26.cpp: In static member function 'static void Object1::func5(Data2*)':
+test26.cpp:85:16: warning: Using parameter 'ptr1' without checking for null pointer
+ delete ptr1;
+ ^
__stoa: pointer_type __convf, pointer_type __name, pointer_type __str, pointer_type __idx,
__stoa: pointer_type __convf, pointer_type __name, pointer_type __str, pointer_type __idx,
__stoa: pointer_type __convf, pointer_type __name, pointer_type __str, pointer_type __idx,
diff --git a/test/test26-03.txt b/test/test26-03.txt
index dd8d127..5b63f48 100644
--- a/test/test26-03.txt
+++ b/test/test26-03.txt
@@ -13023,6 +13023,247 @@ 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:
if_stmt : ptr1,
ne_expr : ptr1,
@@ -13045,7 +13286,7 @@ if_stmt :
truth_andif_expr :
ne_expr :
test26.cpp: In member function 'void Object1::func1(Data1*)':
-test26.cpp:41:22: warning: Useless variable check 'ptr1'. It already was checked before
+test26.cpp:48:22: warning: Useless variable check 'ptr1'. It already was checked before
if (ptr1 && k == 1)
^
parm_decl ptr1:
@@ -13073,6 +13314,386 @@ integer_cst -2147483648:
integer_cst 2147483647:
integer_cst 1:
return_expr :
+function_decl func2:
+if_stmt : ptr1,
+eq_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+field_decl str1: ptr1,
+integer_cst 64: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+if_stmt : ptr1,
+truth_andif_expr : ptr1,
+eq_expr : ptr1,
+test26.cpp: In member function 'void Object1::func2(Data1*)':
+test26.cpp:57:18: warning: Useless variable check 'ptr1'. It already was checked before
+ if (!ptr1 && k == 1)
+ ^
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+field_decl str1: ptr1,
+integer_cst 64: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+eq_expr : ptr1,
+var_decl k: ptr1,
+integer_cst 32: ptr1,
+integer_type : ptr1,
+type_decl int: ptr1,
+integer_cst 32: ptr1,
+integer_cst -2147483648: ptr1,
+integer_cst 2147483647: ptr1,
+integer_cst 1: ptr1,
+return_expr : ptr1,
+function_decl Data1:
+statement_list :
+bind_expr :
+cleanup_stmt :
+statement_list :
+cleanup_stmt :
+statement_list :
+call_expr :
+addr_expr :
+function_decl __comp_dtor :
+addr_expr :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+field_decl str1:
+integer_cst 64:
+modify_expr :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+constructor :
+record_type :
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+block :
+label_expr :
+label_decl :
+function_decl __base_dtor :
+statement_list :
+bind_expr :
+try_finally :
+statement_list :
+try_finally :
+statement_list :
+call_expr :
+addr_expr :
+function_decl __comp_dtor :
+addr_expr :
+component_ref :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+field_decl str1:
+integer_cst 64:
+modify_expr :
+indirect_ref :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+constructor :
+record_type :
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+block :
+label_expr :
+label_decl :
+function_decl __comp_dtor :
+statement_list :
+function_decl func3:
+statement_list : ptr1,
+if_stmt : ptr1,
+eq_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+field_decl str1: ptr1,
+integer_cst 64: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+return_expr : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt :
+cond_expr :
+ne_expr :
+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:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+integer_cst 0:
+compound_expr :
+call_expr :
+addr_expr :
+function_decl __comp_dtor :
+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:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+call_expr :
+addr_expr :
+function_decl operator delete:
+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:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+void_cst :
+function_decl func4:
+statement_list : ptr1,
+if_stmt : ptr1,
+ne_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+field_decl str1: ptr1,
+integer_cst 64: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+return_expr :
+cleanup_point_expr : ptr1,
+expr_stmt : ptr1,
+cond_expr : ptr1,
+ne_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+field_decl str1: ptr1,
+integer_cst 64: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+compound_expr :
+call_expr :
+addr_expr :
+function_decl __comp_dtor :
+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:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+call_expr :
+addr_expr :
+function_decl operator delete:
+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:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+void_cst : ptr1,
+function_decl func5:
+statement_list : ptr1,
+if_stmt : ptr1,
+eq_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data2: ptr1,
+field_decl _vptr.Data2: ptr1,
+integer_cst 64: ptr1,
+type_decl Data2: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
+return_expr : ptr1,
+cleanup_point_expr : ptr1,
+expr_stmt :
+cond_expr :
+ne_expr :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+integer_cst 0:
+call_expr :
+obj_type_ref :
+indirect_ref :
+pointer_plus_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+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:
+integer_cst 8:
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+integer_cst 1:
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data2:
+field_decl _vptr.Data2:
+integer_cst 64:
+type_decl Data2:
+integer_cst 64:
+void_cst :
function_decl c_str:
function_decl __stoa:
bind_expr : __convf, __idx, __name, __str,
diff --git a/test/test26-04.txt b/test/test26-04.txt
index 32fe1ab..f0226d8 100644
--- a/test/test26-04.txt
+++ b/test/test26-04.txt
@@ -1,4 +1,8 @@
test26.cpp: In member function 'void Object1::func1(Data1*)':
-test26.cpp:41:22: warning: Useless variable check 'ptr1'. It already was checked before
+test26.cpp:48:22: warning: Useless variable check 'ptr1'. It already was checked before
if (ptr1 && k == 1)
^
+test26.cpp: In member function 'void Object1::func2(Data1*)':
+test26.cpp:57:18: warning: Useless variable check 'ptr1'. It already was checked before
+ if (!ptr1 && k == 1)
+ ^
diff --git a/test/test26-05.txt b/test/test26-05.txt
index 32fe1ab..f0226d8 100644
--- a/test/test26-05.txt
+++ b/test/test26-05.txt
@@ -1,4 +1,8 @@
test26.cpp: In member function 'void Object1::func1(Data1*)':
-test26.cpp:41:22: warning: Useless variable check 'ptr1'. It already was checked before
+test26.cpp:48:22: warning: Useless variable check 'ptr1'. It already was checked before
if (ptr1 && k == 1)
^
+test26.cpp: In member function 'void Object1::func2(Data1*)':
+test26.cpp:57:18: warning: Useless variable check 'ptr1'. It already was checked before
+ if (!ptr1 && k == 1)
+ ^
diff --git a/test/test26.cpp b/test/test26.cpp
index baca5d9..929a85a 100644
--- a/test/test26.cpp
+++ b/test/test26.cpp
@@ -30,6 +30,13 @@ struct Data1
}
};
+struct Data2
+{
+ virtual ~Data2()
+ {
+ }
+};
+
int k;
class Object1
@@ -42,4 +49,39 @@ class Object1
return;
}
}
+
+ void func2(Data1 *const ptr1)
+ {
+ if (!ptr1)
+ {
+ if (!ptr1 && k == 1)
+ return;
+ }
+ }
+
+ void func3(Data1 *const ptr1)
+ {
+ if (!ptr1)
+ {
+ return;
+ }
+ delete ptr1;
+ }
+
+ void func4(Data1 *const ptr1)
+ {
+ if (ptr1)
+ {
+ return;
+ }
+ delete ptr1;
+ }
+
+ static void func5(Data2 *const ptr1)
+ {
+ if (!ptr1)
+ return;
+
+ delete ptr1;
+ }
};