summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2019-03-07 22:28:25 +0300
committerAndrei Karas <akaras@inbox.ru>2019-03-07 22:29:19 +0300
commit3a7fc8e3bf44b97fc584a295ead0534900851b0b (patch)
tree2c64216bdfcf213c781ede8e7d80c21a6d686997
parentfedd0814d585b2d58695375a12b9fdca55de9f5e (diff)
downloadparanucker-3a7fc8e3bf44b97fc584a295ead0534900851b0b.tar.gz
paranucker-3a7fc8e3bf44b97fc584a295ead0534900851b0b.tar.bz2
paranucker-3a7fc8e3bf44b97fc584a295ead0534900851b0b.tar.xz
paranucker-3a7fc8e3bf44b97fc584a295ead0534900851b0b.zip
Add GOTO_EXPR
Some uncommited old changes...
-rw-r--r--src/analysis/analysis.cpp4
-rw-r--r--src/analysis/expression.cpp14
-rw-r--r--src/analysis/expression.h7
-rw-r--r--src/analysis/ref.cpp18
-rw-r--r--test/test24-03.txt226
-rw-r--r--test/test35-03.txt3
-rw-r--r--test/test35-04.txt3
-rw-r--r--test/test35-05.txt3
-rw-r--r--test/test43-06.txt2424
9 files changed, 2577 insertions, 125 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp
index 8b76a6e..fe0bc7e 100644
--- a/src/analysis/analysis.cpp
+++ b/src/analysis/analysis.cpp
@@ -42,6 +42,7 @@
#include "nodes/expr/cond_expr.h"
#include "nodes/expr/decl_expr.h"
#include "nodes/expr/eq_expr.h"
+#include "nodes/expr/goto_expr.h"
#include "nodes/expr/init_expr.h"
#include "nodes/expr/modify_expr.h"
#include "nodes/expr/ne_expr.h"
@@ -257,6 +258,9 @@ void analyseNode(Node *node, const WalkItem &wi, WalkItem &wo)
case COMPOUND_EXPR:
analyseCompoundExpr(static_cast<CompoundExprNode*>(node), wi2, wo);
break;
+ case GOTO_EXPR:
+ analyseGotoExpr(static_cast<GotoExprNode*>(node), wi2, wo);
+ break;
case NOP_EXPR:
analyseNopExpr(static_cast<NopExprNode*>(node), wi2, wo);
break;
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 4dd85bd..578dc8e 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -41,6 +41,7 @@
#include "nodes/expr/convert_expr.h"
#include "nodes/expr/decl_expr.h"
#include "nodes/expr/eq_expr.h"
+#include "nodes/expr/goto_expr.h"
#include "nodes/expr/init_expr.h"
#include "nodes/expr/modify_expr.h"
#include "nodes/expr/ne_expr.h"
@@ -681,6 +682,8 @@ void analyseOrCondition(Node *node, Node *node1, Node *node2, const WalkItem &wi
wo1.checkedElseNonNullVars.end());
wi2.knownVars.insert(wo1.checkedElseNullVars.begin(),
wo1.checkedElseNullVars.end());
+// FOR_EACH(it, wi2.knownNonNullVars)
+// Log::log("known non null: %s\n", it.c_str());
Log::dumpWI(node, "wi2 ", wi2);
walkTree(node2, wi2, wo2);
Log::dumpWI(node, "wo2 ", wo2);
@@ -980,7 +983,7 @@ void analyseCallExpr(CallExprNode *node, const WalkItem &wi, WalkItem &wo)
}
}
VarItem var = getVariableName(function);
- if (!var.isNonNull)
+ if (!var.isNonNull && isNotIn(var.name, wo2.knownNonNullVars))
reportParmDeclNullPointer(node, function, wi);
if (!getVariableName(function).empty())
enableCheck = false;
@@ -1001,7 +1004,7 @@ void analyseCallExpr(CallExprNode *node, const WalkItem &wi, WalkItem &wo)
VarItem var = getVariableName(node2);
if (enableCheck)
{
- if (!var.isNonNull)
+ if (!var.isNonNull && isNotIn(var.name, wo2.knownNonNullVars))
reportParmDeclNullPointer(node, node2, wi);
enableCheck = false;
}
@@ -1272,4 +1275,11 @@ void analyseInitExpr(InitExprNode* node,
reportParmDeclLeftNullPointer(node, node->args[1], wi);
}
+void analyseGotoExpr(GotoExprNode *node,
+ const WalkItem &wi,
+ WalkItem &wo)
+{
+ wo.isContinued = true;
+}
+
}
diff --git a/src/analysis/expression.h b/src/analysis/expression.h
index 8d18a95..41def20 100644
--- a/src/analysis/expression.h
+++ b/src/analysis/expression.h
@@ -30,6 +30,7 @@ struct CompoundExprNode;
struct CondExprNode;
struct DeclExprNode;
struct EqExprNode;
+struct GotoExprNode;
struct InitExprNode;
struct ModifyExprNode;
struct NeExprNode;
@@ -87,6 +88,10 @@ namespace Analysis
void analyseInitExpr(InitExprNode* node, const WalkItem &wi, WalkItem &wo);
+ void analyseGotoExpr(GotoExprNode *node,
+ const WalkItem &wi,
+ WalkItem &wo);
+
void handleSetVar(Node *node1,
Node *node2,
const WalkItem &wi,
@@ -108,6 +113,8 @@ namespace Analysis
WalkItem &wo);
bool isValidVar(const VarItem &str);
+
+ VarItem getVariableName(Node *node);
}
#endif // ANALYSIS_EXPRESSION_H
diff --git a/src/analysis/ref.cpp b/src/analysis/ref.cpp
index 2391fa3..f2fcb21 100644
--- a/src/analysis/ref.cpp
+++ b/src/analysis/ref.cpp
@@ -24,6 +24,7 @@
#include "analysis/analysis.h"
#include "analysis/reports.h"
+#include "analysis/varitem.h"
#include "analysis/walkitem.h"
#include "nodes/expr/addr_expr.h"
@@ -68,10 +69,25 @@ void analyseArrayRef(ArrayRefNode *node,
if (node->args.empty() || checkCommand(FindArgs))
return;
+// if (isIn("cell", wi.knownNonNullVars))
+// Log::log("cell ok1\n");
+// else
+// Log::log("cell not ok1\n");
+
+// Log::log("array start\n");
FOR_EACH(it, node->args)
{
- reportParmDeclNullPointer(node, it, wi);
+ VarItem var = getVariableName(it);
+ if (!var.isNonNull && isNotIn(var.name, wo.knownNonNullVars))
+ reportParmDeclNullPointer(node, it, wi);
}
+
+// if (isIn("cell", wi.knownNonNullVars))
+// Log::log("cell ok1\n");
+// else
+// Log::log("cell not ok1\n");
+
+// Log::log("array end\n");
}
}
diff --git a/test/test24-03.txt b/test/test24-03.txt
index f12f5fe..cc456f1 100644
--- a/test/test24-03.txt
+++ b/test/test24-03.txt
@@ -469,128 +469,128 @@ integer_cst 64: w1, w2,
integer_cst 0: w1, w2,
goto_expr : w1, w2,
postincrement_expr : w1, w2,
-var_decl i: w1, w2,
-integer_cst 32: w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
-integer_cst 1: w1, w2,
+var_decl i:
+integer_cst 32:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 1:
label_expr : w1, w2,
-label_decl : w1, w2,
+label_decl :
cond_expr : w1, w2,
-le_expr : w1, w2,
-var_decl i: w1, w2,
-integer_cst 32: w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
-integer_cst 9: w1, w2,
+le_expr :
+var_decl i:
+integer_cst 32:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 9:
goto_expr : w1, w2,
goto_expr : w1, w2,
label_expr : w1, w2,
-label_decl : w1, w2,
+label_decl :
var_decl fptr: w1, w2,
-integer_cst 64: w1, w2,
-constructor : w1, w2,
-array_type : w1, w2,
-pointer_type : w1, w2,
-function_type : w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-integer_type : w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-tree_list : w1, w2,
-integer_type : w1, w2,
-integer_cst 64: w1, w2,
-integer_cst 0: w1, w2,
-integer_cst 0: w1, w2,
-integer_cst 0: w1, w2,
-addr_expr : w1, w2,
-function_decl test1: w1, w2,
+integer_cst 64:
+constructor :
+array_type :
+pointer_type :
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+tree_list :
+pointer_type :
+integer_type :
+tree_list :
+pointer_type :
+tree_list :
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 0:
+integer_cst 0:
+addr_expr :
+function_decl test1:
bind_expr : w1, w2,
-statement_list : w1, w2,
-block : w1, w2,
-array_type : w1, w2,
-pointer_type : w1, w2,
-function_type : w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-integer_type : w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-tree_list : w1, w2,
-integer_type : w1, w2,
-integer_cst 64: w1, w2,
-integer_cst 0: w1, w2,
-integer_cst 0: w1, w2,
+statement_list :
+block :
+array_type :
+pointer_type :
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+tree_list :
+pointer_type :
+integer_type :
+tree_list :
+pointer_type :
+tree_list :
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 0:
block : w1, w2,
-var_decl fptr: w1, w2,
-integer_cst 64: w1, w2,
-constructor : w1, w2,
-array_type : w1, w2,
-pointer_type : w1, w2,
-function_type : w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-integer_type : w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-tree_list : w1, w2,
-integer_type : w1, w2,
-integer_cst 64: w1, w2,
-integer_cst 0: w1, w2,
-integer_cst 0: w1, w2,
-integer_cst 0: w1, w2,
-addr_expr : w1, w2,
-function_decl test1: w1, w2,
+var_decl fptr:
+integer_cst 64:
+constructor :
+array_type :
+pointer_type :
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+tree_list :
+pointer_type :
+integer_type :
+tree_list :
+pointer_type :
+tree_list :
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 0:
+integer_cst 0:
+addr_expr :
+function_decl test1:
bind_expr : w1, w2,
-statement_list : w1, w2,
-block : w1, w2,
-array_type : w1, w2,
-pointer_type : w1, w2,
-function_type : w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-integer_type : w1, w2,
-tree_list : w1, w2,
-pointer_type : w1, w2,
-tree_list : w1, w2,
-integer_type : w1, w2,
-integer_cst 64: w1, w2,
-integer_cst 0: w1, w2,
-integer_cst 0: w1, w2,
-var_decl i: w1, w2,
-integer_cst 32: w1, w2,
-integer_type : w1, w2,
-type_decl int: w1, w2,
-integer_cst 32: w1, w2,
-integer_cst -2147483648: w1, w2,
-integer_cst 2147483647: w1, w2,
+statement_list :
+block :
+array_type :
+pointer_type :
+function_type :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+tree_list :
+pointer_type :
+integer_type :
+tree_list :
+pointer_type :
+tree_list :
+integer_type :
+integer_cst 64:
+integer_cst 0:
+integer_cst 0:
+var_decl i:
+integer_cst 32:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
function_decl func8:
bind_expr : fptr,
call_expr : fptr,
diff --git a/test/test35-03.txt b/test/test35-03.txt
index d27749b..a4f65b6 100644
--- a/test/test35-03.txt
+++ b/test/test35-03.txt
@@ -851,9 +851,6 @@ type_decl Data1: ptr1,
call_expr : ptr1,
addr_expr : ptr1,
function_decl getData3: ptr1,
-test35.cpp:127:42: warning: Using variable 'ptr1' without checking for null pointer
- ptr1 = ptr1->ptrval->getData3();
- ^
component_ref : ptr1,
indirect_ref : ptr1,
var_decl ptr1: ptr1,
diff --git a/test/test35-04.txt b/test/test35-04.txt
index dff6476..8d8c592 100644
--- a/test/test35-04.txt
+++ b/test/test35-04.txt
@@ -6,6 +6,3 @@ test35.cpp: In member function 'void Object1::func3()':
test35.cpp:93:37: warning: Using variable 'this->tmp1' without checking for null pointer
Data1 *ptr1 = tmp1->getData3();
^
-test35.cpp:127:42: warning: Using variable 'ptr1' without checking for null pointer
- ptr1 = ptr1->ptrval->getData3();
- ^
diff --git a/test/test35-05.txt b/test/test35-05.txt
index dff6476..8d8c592 100644
--- a/test/test35-05.txt
+++ b/test/test35-05.txt
@@ -6,6 +6,3 @@ test35.cpp: In member function 'void Object1::func3()':
test35.cpp:93:37: warning: Using variable 'this->tmp1' without checking for null pointer
Data1 *ptr1 = tmp1->getData3();
^
-test35.cpp:127:42: warning: Using variable 'ptr1' without checking for null pointer
- ptr1 = ptr1->ptrval->getData3();
- ^
diff --git a/test/test43-06.txt b/test/test43-06.txt
new file mode 100644
index 0000000..df9187e
--- /dev/null
+++ b/test/test43-06.txt
@@ -0,0 +1,2424 @@
+start dump
+function_decl Data2 test43.cpp 8:5 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data2 test43.cpp 6:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 8:13 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 8:11 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ bind_expr test43.cpp 11:5 2147483646 - code
+ cleanup_point_expr test43.cpp 9:20 2147483645 - operand
+ expr_stmt test43.cpp 9:20 2147483644 - operand
+ convert_expr 2147483643 - expresssion
+ init_expr 2147483642 - operand
+ component_ref test43.cpp 9:20 2147483641 - operand
+ indirect_ref 2147483640 - object
+ nop_expr 2147483639 - ref
+ parm_decl this test43.cpp 8:11 2147483638 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483637 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483637 - parm size
+ field_decl val test43.cpp 12:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ component_ref test43.cpp 9:17 2147483641 - operand
+ indirect_ref 2147483640 - object
+ var_decl d1 test43.cpp 4:8 2147483639 - ref
+ - isUsed: 1
+ tree_list 2147483638 - attribute
+ identifier_node nonnullpointer 2147483637 - purpose
+ integer_cst 64 2147483638 - decl size
+ pointer_type 2147483638 - var type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ field_decl val test43.cpp 12:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ block 2147483645 - operand
+end dump
+start dump
+function_decl __base_ctor test43.cpp 8:5 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data2 test43.cpp 6:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 11:5 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 8:11 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ bind_expr test43.cpp 11:5 2147483646 - code
+ cleanup_point_expr test43.cpp 9:20 2147483645 - operand
+ expr_stmt test43.cpp 9:20 2147483644 - operand
+ convert_expr 2147483643 - expresssion
+ init_expr 2147483642 - operand
+ component_ref test43.cpp 9:20 2147483641 - operand
+ indirect_ref 2147483640 - object
+ nop_expr 2147483639 - ref
+ parm_decl this test43.cpp 8:11 2147483638 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483637 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483637 - parm size
+ field_decl val test43.cpp 12:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ component_ref test43.cpp 9:17 2147483641 - operand
+ indirect_ref 2147483640 - object
+ var_decl d1 test43.cpp 4:8 2147483639 - ref
+ - isUsed: 1
+ tree_list 2147483638 - attribute
+ identifier_node nonnullpointer 2147483637 - purpose
+ integer_cst 64 2147483638 - decl size
+ pointer_type 2147483638 - var type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ field_decl val test43.cpp 12:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ block 2147483645 - operand
+end dump
+start dump
+function_decl __comp_ctor test43.cpp 8:5 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data2 test43.cpp 6:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 11:5 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 8:11 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ statement_list 2147483646 - code
+end dump
+start dump
+function_decl getData3 test43.cpp 15:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 1:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data2 test43.cpp 6:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 16:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 1:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 15:21 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 17:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 16:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 1:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ component_ref test43.cpp 17:16 2147483644 - operand
+ indirect_ref 2147483643 - object
+ nop_expr 2147483642 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 15:21 2147483641 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483640 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483640 - parm size
+ field_decl ptrval test43.cpp 13:12 2147483643 - field
+ - unsigned
+ integer_cst 64 2147483642 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 1:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl getData2 test43.cpp 29:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 30:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 29:21 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 31:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 30:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ component_ref test43.cpp 31:16 2147483644 - operand
+ indirect_ref 2147483643 - object
+ nop_expr 2147483642 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 29:21 2147483641 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483640 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483640 - parm size
+ field_decl ptrval test43.cpp 24:12 2147483643 - field
+ - unsigned
+ integer_cst 64 2147483642 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl getData3 test43.cpp 34:20 2147483647
+- isVirtual: 1
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ reference_type 2147483643 - value
+ integer_type 2147483642 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ integer_cst 32 2147483641 - type size
+ integer_cst -2147483648 2147483641 - min value
+ integer_cst 2147483647 2147483641 - max value
+ tree_list 2147483643 - chain
+ void_type 2147483642 - value
+ type_decl void <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 35:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ - isUsed: 1
+ parm_decl k test43.cpp 34:34 2147483646 - argument
+ reference_type 2147483645 - decl type
+ integer_type 2147483644 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 2147483643 - type name
+ - isAutogenerated: 1
+ integer_cst 32 2147483643 - type size
+ integer_cst -2147483648 2147483643 - min value
+ integer_cst 2147483647 2147483643 - max value
+ integer_cst 64 2147483645 - parm size
+ statement_list 2147483646 - code
+ cleanup_point_expr test43.cpp 36:16 2147483645 - statement
+ expr_stmt test43.cpp 36:16 2147483644 - operand
+ convert_expr 2147483643 - expresssion
+ modify_expr 2147483642 - operand
+ component_ref test43.cpp 36:9 2147483641 - operand
+ indirect_ref 2147483640 - object
+ nop_expr 2147483639 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 2147483638 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483637 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483637 - parm size
+ field_decl val test43.cpp 23:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ indirect_ref 2147483641 - operand
+ - isUsed: 1
+ parm_decl k test43.cpp 34:34 2147483640 - ref
+ reference_type 2147483639 - decl type
+ integer_type 2147483638 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 2147483637 - type name
+ - isAutogenerated: 1
+ integer_cst 32 2147483637 - type size
+ integer_cst -2147483648 2147483637 - min value
+ integer_cst 2147483647 2147483637 - max value
+ integer_cst 64 2147483639 - parm size
+ return_expr test43.cpp 37:16 2147483645 - statement
+ init_expr 2147483644 - operand
+ result_decl test43.cpp 35:5 2147483643 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483642 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483642 - decl size
+ component_ref test43.cpp 37:16 2147483643 - operand
+ indirect_ref 2147483642 - object
+ nop_expr 2147483641 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 2147483640 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483639 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483639 - parm size
+ field_decl ptrval test43.cpp 24:12 2147483642 - field
+ - unsigned
+ integer_cst 64 2147483641 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl getData4 test43.cpp 39:19 2147483647
+- isPublic: 1
+ function_type 2147483646 - function type
+ pointer_type 2147483645 - function return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ void_type 2147483644 - value
+ type_decl void <built-in> 0:0 2147483643 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 40:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ return_expr test43.cpp 41:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 40:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ integer_cst 0 2147483644 - operand
+end dump
+start dump
+function_decl getData5 test43.cpp 43:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ tree_list 2147483645 - attribute
+ identifier_node returns_nonnull 2147483644 - purpose
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 44:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 43:54 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 45:17 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 44:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ addr_expr 2147483644 - operand
+ component_ref test43.cpp 45:17 2147483643 - operand
+ indirect_ref 2147483642 - object
+ nop_expr 2147483641 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 43:54 2147483640 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483639 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483639 - parm size
+ field_decl perm test43.cpp 25:11 2147483642 - field
+ - signed
+ integer_cst 256 2147483641 - decl size
+ record_type 5 - field type
+ type_decl Data2 test43.cpp 6:8 4 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl getData6 test43.cpp 47:20 2147483647
+- isVirtual: 1
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 48:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ parm_decl this test43.cpp 47:29 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 49:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 48:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ integer_cst 0 2147483644 - operand
+end dump
+start dump
+function_decl getData1 test43.cpp 69:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 70:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 69:21 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 71:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 70:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ component_ref test43.cpp 71:16 2147483644 - operand
+ indirect_ref 2147483643 - object
+ nop_expr 2147483642 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 69:21 2147483641 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483640 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483640 - parm size
+ field_decl tmp2 test43.cpp 63:12 2147483643 - field
+ - unsigned
+ integer_cst 64 2147483642 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl getData2 test43.cpp 74:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 75:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 74:21 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 76:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 75:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ component_ref test43.cpp 76:16 2147483644 - operand
+ indirect_ref 2147483643 - object
+ nop_expr 2147483642 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 74:21 2147483641 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483640 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483640 - parm size
+ field_decl tmp2 test43.cpp 63:12 2147483643 - field
+ - unsigned
+ integer_cst 64 2147483642 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl func1 test43.cpp 79:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ pointer_type 2147483643 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483643 - chain
+ void_type 2147483642 - value
+ type_decl void <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 80:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 79:31 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ parm_decl ptr1 test43.cpp 79:25 2147483646 - argument
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 81:27 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 80:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ nop_expr 2147483644 - operand
+ cond_expr 2147483643 - operand
+ ne_expr 2147483642 - operand
+ var_decl k test43.cpp 53:5 2147483641 - operand
+ - isUsed: 1
+ integer_cst 32 2147483640 - decl size
+ integer_type 2147483640 - var type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 2147483639 - type name
+ - isAutogenerated: 1
+ integer_cst 32 2147483639 - type size
+ integer_cst -2147483648 2147483639 - min value
+ integer_cst 2147483647 2147483639 - max value
+ integer_cst 0 2147483641 - operand
+ component_ref test43.cpp 81:20 2147483642 - operand
+ indirect_ref 2147483641 - object
+ nop_expr 2147483640 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 79:31 2147483639 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483638 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483638 - parm size
+ field_decl tmp1 test43.cpp 62:12 2147483641 - field
+ - unsigned
+ integer_cst 64 2147483640 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ component_ref test43.cpp 81:27 2147483642 - operand
+ indirect_ref 2147483641 - object
+ nop_expr 2147483640 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 79:31 2147483639 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483638 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483638 - parm size
+ field_decl tmp2 test43.cpp 63:12 2147483641 - field
+ - unsigned
+ integer_cst 64 2147483640 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl func2 test43.cpp 84:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ pointer_type 2147483643 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483643 - chain
+ void_type 2147483642 - value
+ type_decl void <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 85:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 84:31 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ parm_decl ptr1 test43.cpp 84:25 2147483646 - argument
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 86:16 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 85:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ nop_expr 2147483644 - operand
+ component_ref test43.cpp 86:16 2147483643 - operand
+ indirect_ref 2147483642 - object
+ nop_expr 2147483641 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 84:31 2147483640 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483639 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483639 - parm size
+ field_decl tmp1 test43.cpp 62:12 2147483642 - field
+ - unsigned
+ integer_cst 64 2147483641 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl func3 test43.cpp 89:12 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ pointer_type 2147483645 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ pointer_type 2147483643 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483643 - chain
+ void_type 2147483642 - value
+ type_decl void <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 90:5 2147483646 - function result
+ - isAutogenerated: 1
+ pointer_type 2147483645 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 89:31 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ parm_decl ptr1 test43.cpp 89:25 2147483646 - argument
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ return_expr test43.cpp 91:23 2147483646 - code
+ init_expr 2147483645 - operand
+ result_decl test43.cpp 90:5 2147483644 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483643 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483643 - decl size
+ pointer_plus_expr test43.cpp 91:23 2147483644 - operand
+ nop_expr 2147483643 - operand
+ component_ref test43.cpp 91:17 2147483642 - operand
+ indirect_ref 2147483641 - object
+ nop_expr 2147483640 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 89:31 2147483639 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483638 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483638 - parm size
+ field_decl tmp1 test43.cpp 62:12 2147483641 - field
+ - unsigned
+ integer_cst 64 2147483640 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 72 2147483643 - operand
+end dump
+test43.cpp: In member function 'Data1* Object1::func3(Data1*) const':
+test43.cpp:91:23: warning: Using variable 'this->tmp1' without checking for null pointer
+ return &tmp1[1];
+ ^
+start dump
+function_decl func4 test43.cpp 94:10 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ pointer_type 2147483643 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483643 - chain
+ void_type 2147483642 - value
+ type_decl void <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 95:5 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl this test43.cpp 94:27 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ parm_decl ptr1 test43.cpp 94:23 2147483646 - argument
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ statement_list 2147483646 - code
+ cleanup_point_expr test43.cpp 96:22 2147483645 - statement
+ expr_stmt test43.cpp 96:22 2147483644 - operand
+ convert_expr 2147483643 - expresssion
+ modify_expr 2147483642 - operand
+ component_ref test43.cpp 96:9 2147483641 - operand
+ indirect_ref 2147483640 - object
+ nop_expr 2147483639 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 94:27 2147483638 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483637 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483637 - parm size
+ field_decl x test43.cpp 65:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ component_ref test43.cpp 96:19 2147483641 - operand
+ indirect_ref 2147483640 - object
+ component_ref test43.cpp 96:13 2147483639 - ref
+ indirect_ref 2147483638 - object
+ nop_expr 2147483637 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 94:27 2147483636 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483635 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483635 - parm size
+ field_decl tmp3 test43.cpp 64:47 2147483638 - field
+ - unsigned
+ tree_list 2147483637 - attribute
+ identifier_node nonnullpointer 2147483636 - purpose
+ integer_cst 64 2147483637 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ field_decl val test43.cpp 23:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ cleanup_point_expr test43.cpp 97:25 2147483645 - statement
+ expr_stmt test43.cpp 97:25 2147483644 - operand
+ convert_expr 2147483643 - expresssion
+ modify_expr 2147483642 - operand
+ component_ref test43.cpp 97:9 2147483641 - operand
+ indirect_ref 2147483640 - object
+ nop_expr 2147483639 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 94:27 2147483638 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483637 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483637 - parm size
+ field_decl y test43.cpp 66:9 2147483640 - field
+ - signed
+ integer_cst 32 2147483639 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ array_ref test43.cpp 97:24 2147483641 - operand
+ integer_cst 0 2147483640 - low bound
+ integer_cst 4 2147483640 - element size
+ component_ref test43.cpp 97:19 2147483640 - operand
+ indirect_ref 2147483639 - object
+ component_ref test43.cpp 97:13 2147483638 - ref
+ indirect_ref 2147483637 - object
+ nop_expr 2147483636 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 94:27 2147483635 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483634 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483634 - parm size
+ field_decl tmp3 test43.cpp 64:47 2147483637 - field
+ - unsigned
+ tree_list 2147483636 - attribute
+ identifier_node nonnullpointer 2147483635 - purpose
+ integer_cst 64 2147483636 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ field_decl arr test43.cpp 26:14 2147483639 - field
+ - signed
+ integer_cst 96 2147483638 - decl size
+ array_type 5 - field type
+ integer_type 4 - element type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 3 - type name
+ - isAutogenerated: 1
+ integer_cst 32 3 - type size
+ integer_cst -2147483648 3 - min value
+ integer_cst 2147483647 3 - max value
+ integer_type 4 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 3 - type size
+ integer_cst 0 3 - min value
+ integer_cst 2 3 - max value
+ integer_cst 0 2147483640 - operand
+end dump
+start dump
+function_decl func5 test43.cpp 100:10 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 101:5 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 100:16 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ bind_expr test43.cpp 105:28 2147483646 - code
+ var_decl idx test43.cpp 102:13 2147483645 - operand
+ - isUsed: 1
+ integer_cst 32 2147483644 - decl size
+ integer_cst 5 20 - initial
+ integer_type 2147483644 - var type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 2147483643 - type name
+ - isAutogenerated: 1
+ integer_cst 32 2147483643 - type size
+ integer_cst -2147483648 2147483643 - min value
+ integer_cst 2147483647 2147483643 - max value
+ statement_list 2147483645 - operand
+ cleanup_point_expr test43.cpp 102:19 2147483644 - statement
+ decl_expr test43.cpp 102:19 2147483643 - operand
+ var_decl idx test43.cpp 102:13 2147483642 - operand
+ - isUsed: 1
+ integer_cst 32 15 - decl size 2
+ integer_cst 5 20 - initial 2
+ integer_type 15 - var type 2
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ integer_cst 32 14 - type size
+ integer_cst -2147483648 14 - min value
+ integer_cst 2147483647 14 - max value
+ decl_expr test43.cpp 103:38 2147483644 - statement
+ var_decl ptr1 test43.cpp 103:22 2147483643 - operand
+ - isUsed: 1
+ integer_cst 64 2147483642 - decl size
+ array_ref test43.cpp 103:38 20 - initial
+ integer_cst 0 19 - low bound
+ integer_cst 8 19 - element size
+ var_decl garr1 test43.cpp 67:19 19 - operand
+ - isStatic: 1
+ - isUsed: 1
+ integer_cst 640 18 - decl size
+ array_type 18 - var type
+ pointer_type 17 - element type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_type 17 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 16 - type size
+ integer_cst 0 16 - min value
+ integer_cst 9 16 - max value
+ var_decl idx test43.cpp 102:13 19 - operand
+ - isUsed: 1
+ integer_cst 32 15 - decl size 2
+ integer_cst 5 18 - initial 2
+ integer_type 15 - var type 2
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ integer_cst 32 14 - type size
+ integer_cst -2147483648 14 - min value
+ integer_cst 2147483647 14 - max value
+ pointer_type 2147483642 - var type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ if_stmt test43.cpp 104:9 2147483644 - statement
+ ne_expr 2147483643 - condition
+ nop_expr 2147483642 - operand
+ var_decl ptr1 test43.cpp 103:22 2147483641 - operand
+ - isUsed: 1
+ integer_cst 64 15 - decl size 2
+ array_ref test43.cpp 103:38 20 - initial 2
+ integer_cst 0 19 - low bound
+ integer_cst 8 19 - element size
+ var_decl garr1 test43.cpp 67:19 19 - operand
+ - isStatic: 1
+ - isUsed: 1
+ integer_cst 640 15 - decl size 2
+ array_type 15 - var type 2
+ pointer_type 14 - element type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_type 14 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 13 - type size
+ integer_cst 0 13 - min value
+ integer_cst 9 13 - max value
+ var_decl idx test43.cpp 102:13 19 - operand
+ - isUsed: 1
+ integer_cst 32 15 - decl size 2
+ integer_cst 5 18 - initial 2
+ integer_type 15 - var type 2
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ integer_cst 32 14 - type size
+ integer_cst -2147483648 14 - min value
+ integer_cst 2147483647 14 - max value
+ pointer_type 15 - var type 2
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 0 2147483642 - operand
+ cleanup_point_expr test43.cpp 105:28 2147483643 - then
+ expr_stmt test43.cpp 105:28 2147483642 - operand
+ convert_expr 2147483641 - expresssion
+ modify_expr 2147483640 - operand
+ component_ref test43.cpp 105:19 2147483639 - operand
+ indirect_ref 2147483638 - object
+ nop_expr 2147483637 - ref
+ var_decl ptr1 test43.cpp 103:22 2147483636 - operand
+ - isUsed: 1
+ integer_cst 64 15 - decl size 2
+ array_ref test43.cpp 103:38 20 - initial 2
+ integer_cst 0 19 - low bound
+ integer_cst 8 19 - element size
+ var_decl garr1 test43.cpp 67:19 19 - operand
+ - isStatic: 1
+ - isUsed: 1
+ integer_cst 640 15 - decl size 2
+ array_type 15 - var type 2
+ pointer_type 14 - element type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_type 14 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 13 - type size
+ integer_cst 0 13 - min value
+ integer_cst 9 13 - max value
+ var_decl idx test43.cpp 102:13 19 - operand
+ - isUsed: 1
+ integer_cst 32 15 - decl size 2
+ integer_cst 5 18 - initial 2
+ integer_type 15 - var type 2
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ integer_cst 32 14 - type size
+ integer_cst -2147483648 14 - min value
+ integer_cst 2147483647 14 - max value
+ pointer_type 15 - var type 2
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ field_decl val test43.cpp 23:9 2147483638 - field
+ - signed
+ integer_cst 32 2147483637 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ integer_cst 100 2147483639 - operand
+ block 2147483645 - operand
+ var_decl idx test43.cpp 102:13 2147483644 - block vars
+ - isUsed: 1
+ integer_cst 32 15 - decl size 2
+ integer_cst 5 20 - initial 2
+ integer_type 15 - var type 2
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ integer_cst 32 14 - type size
+ integer_cst -2147483648 14 - min value
+ integer_cst 2147483647 14 - max value
+ var_decl ptr1 test43.cpp 103:22 2147483644 - block vars
+ - isUsed: 1
+ integer_cst 64 15 - decl size 2
+ array_ref test43.cpp 103:38 20 - initial 2
+ integer_cst 0 19 - low bound
+ integer_cst 8 19 - element size
+ var_decl garr1 test43.cpp 67:19 19 - operand
+ - isStatic: 1
+ - isUsed: 1
+ integer_cst 640 15 - decl size 2
+ array_type 15 - var type 2
+ pointer_type 14 - element type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_type 14 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 13 - type size
+ integer_cst 0 13 - min value
+ integer_cst 9 13 - max value
+ var_decl idx test43.cpp 102:13 19 - operand
+ - isUsed: 1
+ integer_cst 32 15 - decl size 2
+ integer_cst 5 18 - initial 2
+ integer_type 15 - var type 2
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ integer_cst 32 14 - type size
+ integer_cst -2147483648 14 - min value
+ integer_cst 2147483647 14 - max value
+ pointer_type 15 - var type 2
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+end dump
+start dump
+function_decl Data1 test43.cpp 21:8 2147483647
+- isAutogenerated: 1
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 21:8 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 21:8 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ bind_expr test43.cpp 21:8 2147483646 - code
+ statement_list 2147483645 - operand
+ cleanup_point_expr test43.cpp 21:8 2147483644 - statement
+ expr_stmt test43.cpp 21:8 2147483643 - operand
+ convert_expr 2147483642 - expresssion
+ modify_expr 2147483641 - operand
+ component_ref 2147483640 - operand
+ indirect_ref 2147483639 - object
+ nop_expr 2147483638 - ref
+ parm_decl this test43.cpp 21:8 2147483637 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483636 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483636 - parm size
+ field_decl _vptr.Data1 test43.cpp 21:8 2147483639 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 2147483638 - decl size
+ pointer_type 5 - field type
+ pointer_type 3 - nested type
+ type_decl __vtbl_ptr_type <built-in> 0:0 2 - type name
+ - isAutogenerated: 1
+ function_type 2 - nested type
+ integer_type 1 - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 0 - type size
+ integer_cst -2147483648 0 - min value
+ integer_cst 2147483647 0 - max value
+ pointer_plus_expr 2147483640 - operand
+ addr_expr 2147483639 - operand
+ var_decl _ZTV5Data1 test43.cpp 21:8 2147483638 - operand
+ - isUsed: 1
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 384 2147483637 - decl size
+ constructor 20 - initial
+ array_type 19 - constructor type
+ pointer_type 18 - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 17 - type name
+ - isAutogenerated: 1
+ function_type 3 - nested type
+ integer_type 2 - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 1 - type name
+ - isAutogenerated: 1
+ integer_cst 32 1 - type size
+ integer_cst -2147483648 1 - min value
+ integer_cst 2147483647 1 - max value
+ integer_type 18 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 17 - type size
+ integer_cst 0 17 - min value
+ integer_cst 5 17 - max value
+ nop_expr 19 - value
+ integer_cst 0 18 - operand
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ var_decl _ZTI5Data1 test43.cpp 21:8 17 - operand
+ - isAutogenerated: 1
+ integer_cst 128 16 - decl size
+ record_type 16 - var type
+ type_decl __class_type_info_pseudo <built-in> 0:0 15 - type name
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl __comp_dtor test43.cpp 27:13 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ void_type 15 - method return type
+ type_decl void <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ void_type 13 - value
+ type_decl void <built-in> 0:0 12 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 27:20 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl __deleting_dtor test43.cpp 27:13 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ void_type 15 - method return type
+ type_decl void <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ void_type 13 - value
+ type_decl void <built-in> 0:0 12 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 27:20 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl getData3 test43.cpp 34:20 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ pointer_type 15 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ reference_type 13 - value
+ integer_type 12 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 11 - type name
+ - isAutogenerated: 1
+ integer_cst 32 11 - type size
+ integer_cst -2147483648 11 - min value
+ integer_cst 2147483647 11 - max value
+ tree_list 13 - chain
+ void_type 12 - value
+ type_decl void <built-in> 0:0 11 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 35:5 16 - function result
+ - isAutogenerated: 1
+ pointer_type 15 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ - isUsed: 1
+ parm_decl k test43.cpp 34:34 16 - argument
+ reference_type 15 - decl type
+ integer_type 14 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 13 - type name
+ - isAutogenerated: 1
+ integer_cst 32 13 - type size
+ integer_cst -2147483648 13 - min value
+ integer_cst 2147483647 13 - max value
+ integer_cst 64 15 - parm size
+ statement_list 16 - code
+ cleanup_point_expr test43.cpp 36:16 15 - statement
+ expr_stmt test43.cpp 36:16 14 - operand
+ convert_expr 13 - expresssion
+ modify_expr 12 - operand
+ component_ref test43.cpp 36:9 11 - operand
+ indirect_ref 10 - object
+ nop_expr 9 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 8 - operand
+ - isAutogenerated: 1
+ pointer_type 7 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 7 - parm size
+ field_decl val test43.cpp 23:9 10 - field
+ - signed
+ integer_cst 32 9 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ indirect_ref 11 - operand
+ - isUsed: 1
+ parm_decl k test43.cpp 34:34 10 - ref
+ reference_type 9 - decl type
+ integer_type 8 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 7 - type name
+ - isAutogenerated: 1
+ integer_cst 32 7 - type size
+ integer_cst -2147483648 7 - min value
+ integer_cst 2147483647 7 - max value
+ integer_cst 64 9 - parm size
+ return_expr test43.cpp 37:16 15 - statement
+ init_expr 14 - operand
+ result_decl test43.cpp 35:5 13 - operand
+ - isAutogenerated: 1
+ pointer_type 12 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 12 - decl size
+ component_ref test43.cpp 37:16 13 - operand
+ indirect_ref 12 - object
+ nop_expr 11 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 10 - operand
+ - isAutogenerated: 1
+ pointer_type 9 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 9 - parm size
+ field_decl ptrval test43.cpp 24:12 12 - field
+ - unsigned
+ integer_cst 64 11 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl getData6 test43.cpp 47:20 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ pointer_type 15 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ void_type 13 - value
+ type_decl void <built-in> 0:0 12 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 48:5 16 - function result
+ - isAutogenerated: 1
+ pointer_type 15 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - decl size
+ parm_decl this test43.cpp 47:29 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ return_expr test43.cpp 49:16 16 - code
+ init_expr 15 - operand
+ result_decl test43.cpp 48:5 14 - operand
+ - isAutogenerated: 1
+ pointer_type 13 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 13 - decl size
+ integer_cst 0 14 - operand
+ array_type 2147483637 - var type
+ pointer_type 2147483636 - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 2147483635 - type name
+ - isAutogenerated: 1
+ function_type 3 - nested type
+ integer_type 2 - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 1 - type name
+ - isAutogenerated: 1
+ integer_cst 32 1 - type size
+ integer_cst -2147483648 1 - min value
+ integer_cst 2147483647 1 - max value
+ integer_type 2147483636 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 2147483635 - type size
+ integer_cst 0 2147483635 - min value
+ integer_cst 5 2147483635 - max value
+ integer_cst 16 2147483639 - operand
+ cleanup_point_expr test43.cpp 21:8 2147483644 - statement
+ expr_stmt test43.cpp 21:8 2147483643 - operand
+ call_expr test43.cpp 21:8 2147483642 - expresssion
+ addr_expr 2147483641 - function
+ function_decl __comp_ctor test43.cpp 8:5 50 - operand
+ - isPublic: 1
+ method_type 49 - function type
+ void_type 48 - method return type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ record_type 48 - method base type
+ type_decl Data2 test43.cpp 6:8 47 - type name
+ - isAutogenerated: 1
+ tree_list 48 - arg types
+ pointer_type 47 - value
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 47 - chain
+ void_type 46 - value
+ type_decl void <built-in> 0:0 45 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 11:5 49 - function result
+ - isAutogenerated: 1
+ void_type 48 - result type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 8:11 49 - argument
+ - isAutogenerated: 1
+ pointer_type 48 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 48 - parm size
+ statement_list 49 - code
+ addr_expr 2147483641 - arg
+ component_ref test43.cpp 21:8 2147483640 - operand
+ indirect_ref 2147483639 - object
+ nop_expr 2147483638 - ref
+ parm_decl this test43.cpp 21:8 2147483637 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483636 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483636 - parm size
+ field_decl perm test43.cpp 25:11 2147483639 - field
+ - signed
+ integer_cst 256 2147483638 - decl size
+ record_type 5 - field type
+ type_decl Data2 test43.cpp 6:8 4 - type name
+ - isAutogenerated: 1
+ block 2147483645 - operand
+end dump
+start dump
+function_decl __base_ctor test43.cpp 21:8 2147483647
+- isAutogenerated: 1
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 21:8 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 21:8 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ bind_expr test43.cpp 21:8 2147483646 - code
+ statement_list 2147483645 - operand
+ cleanup_point_expr test43.cpp 21:8 2147483644 - statement
+ expr_stmt test43.cpp 21:8 2147483643 - operand
+ convert_expr 2147483642 - expresssion
+ modify_expr 2147483641 - operand
+ component_ref 2147483640 - operand
+ indirect_ref 2147483639 - object
+ nop_expr 2147483638 - ref
+ parm_decl this test43.cpp 21:8 2147483637 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483636 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483636 - parm size
+ field_decl _vptr.Data1 test43.cpp 21:8 2147483639 - field
+ - unsigned
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 64 2147483638 - decl size
+ pointer_type 5 - field type
+ pointer_type 3 - nested type
+ type_decl __vtbl_ptr_type <built-in> 0:0 2 - type name
+ - isAutogenerated: 1
+ function_type 2 - nested type
+ integer_type 1 - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 0 - type size
+ integer_cst -2147483648 0 - min value
+ integer_cst 2147483647 0 - max value
+ pointer_plus_expr 2147483640 - operand
+ addr_expr 2147483639 - operand
+ var_decl _ZTV5Data1 test43.cpp 21:8 2147483638 - operand
+ - isUsed: 1
+ - isVirtual: 1
+ - isAutogenerated: 1
+ integer_cst 384 2147483637 - decl size
+ constructor 20 - initial
+ array_type 19 - constructor type
+ pointer_type 18 - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 17 - type name
+ - isAutogenerated: 1
+ function_type 3 - nested type
+ integer_type 2 - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 1 - type name
+ - isAutogenerated: 1
+ integer_cst 32 1 - type size
+ integer_cst -2147483648 1 - min value
+ integer_cst 2147483647 1 - max value
+ integer_type 18 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 17 - type size
+ integer_cst 0 17 - min value
+ integer_cst 5 17 - max value
+ nop_expr 19 - value
+ integer_cst 0 18 - operand
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ var_decl _ZTI5Data1 test43.cpp 21:8 17 - operand
+ - isAutogenerated: 1
+ integer_cst 128 16 - decl size
+ record_type 16 - var type
+ type_decl __class_type_info_pseudo <built-in> 0:0 15 - type name
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl __comp_dtor test43.cpp 27:13 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ void_type 15 - method return type
+ type_decl void <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ void_type 13 - value
+ type_decl void <built-in> 0:0 12 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 27:20 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl __deleting_dtor test43.cpp 27:13 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ void_type 15 - method return type
+ type_decl void <built-in> 0:0 14 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ void_type 13 - value
+ type_decl void <built-in> 0:0 12 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 27:20 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl getData3 test43.cpp 34:20 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ pointer_type 15 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ reference_type 13 - value
+ integer_type 12 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 11 - type name
+ - isAutogenerated: 1
+ integer_cst 32 11 - type size
+ integer_cst -2147483648 11 - min value
+ integer_cst 2147483647 11 - max value
+ tree_list 13 - chain
+ void_type 12 - value
+ type_decl void <built-in> 0:0 11 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 35:5 16 - function result
+ - isAutogenerated: 1
+ pointer_type 15 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - decl size
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ - isUsed: 1
+ parm_decl k test43.cpp 34:34 16 - argument
+ reference_type 15 - decl type
+ integer_type 14 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 13 - type name
+ - isAutogenerated: 1
+ integer_cst 32 13 - type size
+ integer_cst -2147483648 13 - min value
+ integer_cst 2147483647 13 - max value
+ integer_cst 64 15 - parm size
+ statement_list 16 - code
+ cleanup_point_expr test43.cpp 36:16 15 - statement
+ expr_stmt test43.cpp 36:16 14 - operand
+ convert_expr 13 - expresssion
+ modify_expr 12 - operand
+ component_ref test43.cpp 36:9 11 - operand
+ indirect_ref 10 - object
+ nop_expr 9 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 8 - operand
+ - isAutogenerated: 1
+ pointer_type 7 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 7 - parm size
+ field_decl val test43.cpp 23:9 10 - field
+ - signed
+ integer_cst 32 9 - decl size
+ integer_type 5 - field type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 4 - type name
+ - isAutogenerated: 1
+ integer_cst 32 4 - type size
+ integer_cst -2147483648 4 - min value
+ integer_cst 2147483647 4 - max value
+ indirect_ref 11 - operand
+ - isUsed: 1
+ parm_decl k test43.cpp 34:34 10 - ref
+ reference_type 9 - decl type
+ integer_type 8 - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 7 - type name
+ - isAutogenerated: 1
+ integer_cst 32 7 - type size
+ integer_cst -2147483648 7 - min value
+ integer_cst 2147483647 7 - max value
+ integer_cst 64 9 - parm size
+ return_expr test43.cpp 37:16 15 - statement
+ init_expr 14 - operand
+ result_decl test43.cpp 35:5 13 - operand
+ - isAutogenerated: 1
+ pointer_type 12 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 12 - decl size
+ component_ref test43.cpp 37:16 13 - operand
+ indirect_ref 12 - object
+ nop_expr 11 - ref
+ - isUsed: 1
+ parm_decl this test43.cpp 34:35 10 - operand
+ - isAutogenerated: 1
+ pointer_type 9 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 9 - parm size
+ field_decl ptrval test43.cpp 24:12 12 - field
+ - unsigned
+ integer_cst 64 11 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ nop_expr 19 - value
+ addr_expr 18 - operand
+ function_decl getData6 test43.cpp 47:20 17 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 16 - function type
+ pointer_type 15 - method return type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ record_type 15 - method base type
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ tree_list 15 - arg types
+ pointer_type 14 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 14 - chain
+ void_type 13 - value
+ type_decl void <built-in> 0:0 12 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 48:5 16 - function result
+ - isAutogenerated: 1
+ pointer_type 15 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - decl size
+ parm_decl this test43.cpp 47:29 16 - argument
+ - isAutogenerated: 1
+ pointer_type 15 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 15 - parm size
+ return_expr test43.cpp 49:16 16 - code
+ init_expr 15 - operand
+ result_decl test43.cpp 48:5 14 - operand
+ - isAutogenerated: 1
+ pointer_type 13 - result type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 13 - decl size
+ integer_cst 0 14 - operand
+ array_type 2147483637 - var type
+ pointer_type 2147483636 - element type
+ type_decl __vtbl_ptr_type <built-in> 0:0 2147483635 - type name
+ - isAutogenerated: 1
+ function_type 3 - nested type
+ integer_type 2 - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 1 - type name
+ - isAutogenerated: 1
+ integer_cst 32 1 - type size
+ integer_cst -2147483648 1 - min value
+ integer_cst 2147483647 1 - max value
+ integer_type 2147483636 - domain
+ - precisionBits: 64
+ - signed
+ integer_cst 64 2147483635 - type size
+ integer_cst 0 2147483635 - min value
+ integer_cst 5 2147483635 - max value
+ integer_cst 16 2147483639 - operand
+ cleanup_point_expr test43.cpp 21:8 2147483644 - statement
+ expr_stmt test43.cpp 21:8 2147483643 - operand
+ call_expr test43.cpp 21:8 2147483642 - expresssion
+ addr_expr 2147483641 - function
+ function_decl __comp_ctor test43.cpp 8:5 50 - operand
+ - isPublic: 1
+ method_type 49 - function type
+ void_type 48 - method return type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ record_type 48 - method base type
+ type_decl Data2 test43.cpp 6:8 47 - type name
+ - isAutogenerated: 1
+ tree_list 48 - arg types
+ pointer_type 47 - value
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 47 - chain
+ void_type 46 - value
+ type_decl void <built-in> 0:0 45 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 11:5 49 - function result
+ - isAutogenerated: 1
+ void_type 48 - result type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 8:11 49 - argument
+ - isAutogenerated: 1
+ pointer_type 48 - decl type
+ record_type 3 - nested type
+ type_decl Data2 test43.cpp 6:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 48 - parm size
+ statement_list 49 - code
+ addr_expr 2147483641 - arg
+ component_ref test43.cpp 21:8 2147483640 - operand
+ indirect_ref 2147483639 - object
+ nop_expr 2147483638 - ref
+ parm_decl this test43.cpp 21:8 2147483637 - operand
+ - isAutogenerated: 1
+ pointer_type 2147483636 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483636 - parm size
+ field_decl perm test43.cpp 25:11 2147483639 - field
+ - signed
+ integer_cst 256 2147483638 - decl size
+ record_type 5 - field type
+ type_decl Data2 test43.cpp 6:8 4 - type name
+ - isAutogenerated: 1
+ block 2147483645 - operand
+end dump
+start dump
+function_decl __comp_ctor test43.cpp 21:8 2147483647
+- isAutogenerated: 1
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Data1 test43.cpp 21:8 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ void_type 2147483643 - value
+ type_decl void <built-in> 0:0 2147483642 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 21:8 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 21:8 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ statement_list 2147483646 - code
+end dump
+start dump
+function_decl func6 test43.cpp 108:10 2147483647
+- isPublic: 1
+ method_type 2147483646 - function type
+ void_type 2147483645 - method return type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ record_type 2147483645 - method base type
+ type_decl Object1 test43.cpp 60:7 2147483644 - type name
+ - isAutogenerated: 1
+ tree_list 2147483645 - arg types
+ pointer_type 2147483644 - value
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483644 - chain
+ pointer_type 2147483643 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 2147483643 - chain
+ void_type 2147483642 - value
+ type_decl void <built-in> 0:0 2147483641 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 109:5 2147483646 - function result
+ - isAutogenerated: 1
+ void_type 2147483645 - result type
+ type_decl void <built-in> 0:0 2147483644 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 108:27 2147483646 - argument
+ - isAutogenerated: 1
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Object1 test43.cpp 60:7 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test43.cpp 108:23 2147483646 - argument
+ pointer_type 2147483645 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483645 - parm size
+ bind_expr test43.cpp 111:27 2147483646 - code
+ var_decl var1 test43.cpp 110:15 2147483645 - operand
+ - isUsed: 1
+ integer_cst 576 2147483644 - decl size
+ record_type 2147483644 - var type
+ type_decl Data1 test43.cpp 21:8 2147483643 - type name
+ - isAutogenerated: 1
+ statement_list 2147483645 - operand
+ decl_expr test43.cpp 110:15 2147483644 - statement
+ var_decl var1 test43.cpp 110:15 2147483643 - operand
+ - isUsed: 1
+ integer_cst 576 15 - decl size 2
+ record_type 15 - var type 2
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ cleanup_point_expr test43.cpp 110:15 2147483644 - statement
+ expr_stmt test43.cpp 110:15 2147483643 - operand
+ call_expr test43.cpp 110:15 2147483642 - expresssion
+ addr_expr 2147483641 - function
+ function_decl __comp_ctor test43.cpp 21:8 50 - operand
+ - isAutogenerated: 1
+ - isPublic: 1
+ method_type 49 - function type
+ void_type 48 - method return type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ record_type 48 - method base type
+ type_decl Data1 test43.cpp 21:8 47 - type name
+ - isAutogenerated: 1
+ tree_list 48 - arg types
+ pointer_type 47 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 47 - chain
+ void_type 46 - value
+ type_decl void <built-in> 0:0 45 - type name
+ - isAutogenerated: 1
+ result_decl test43.cpp 21:8 49 - function result
+ - isAutogenerated: 1
+ void_type 48 - result type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 21:8 49 - argument
+ - isAutogenerated: 1
+ pointer_type 48 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 48 - parm size
+ statement_list 49 - code
+ addr_expr 2147483641 - arg
+ var_decl var1 test43.cpp 110:15 2147483640 - operand
+ - isUsed: 1
+ integer_cst 576 15 - decl size 2
+ record_type 15 - var type 2
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ cleanup_stmt test43.cpp 110:15 2147483644 - statement
+ statement_list 2147483643 - body
+ cleanup_point_expr test43.cpp 111:27 2147483642 - statement
+ expr_stmt test43.cpp 111:27 2147483641 - operand
+ convert_expr 2147483640 - expresssion
+ modify_expr 2147483639 - operand
+ component_ref test43.cpp 111:14 2147483638 - operand
+ var_decl var1 test43.cpp 110:15 2147483637 - object
+ - isUsed: 1
+ integer_cst 576 15 - decl size 2
+ record_type 15 - var type 2
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ field_decl ptrval test43.cpp 24:12 2147483637 - field
+ - unsigned
+ integer_cst 64 2147483636 - decl size
+ pointer_type 5 - field type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl ptr1 test43.cpp 108:23 2147483638 - operand
+ pointer_type 2147483637 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 2147483637 - parm size
+ call_expr 2147483643 - expresssion
+ addr_expr 2147483642 - function
+ function_decl __comp_dtor test43.cpp 27:13 50 - operand
+ - isVirtual: 1
+ - isExternal: 1
+ - isPublic: 1
+ method_type 49 - function type
+ void_type 48 - method return type
+ type_decl void <built-in> 0:0 47 - type name
+ - isAutogenerated: 1
+ record_type 48 - method base type
+ type_decl Data1 test43.cpp 21:8 47 - type name
+ - isAutogenerated: 1
+ tree_list 48 - arg types
+ pointer_type 47 - value
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ tree_list 47 - chain
+ void_type 46 - value
+ type_decl void <built-in> 0:0 45 - type name
+ - isAutogenerated: 1
+ parm_decl this test43.cpp 27:20 49 - argument
+ - isAutogenerated: 1
+ pointer_type 48 - decl type
+ record_type 3 - nested type
+ type_decl Data1 test43.cpp 21:8 2 - type name
+ - isAutogenerated: 1
+ integer_cst 64 48 - parm size
+ addr_expr 2147483642 - arg
+ var_decl var1 test43.cpp 110:15 2147483641 - operand
+ - isUsed: 1
+ integer_cst 576 15 - decl size 2
+ record_type 15 - var type 2
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ var_decl var1 test43.cpp 110:15 2147483643 - decl
+ - isUsed: 1
+ integer_cst 576 15 - decl size 2
+ record_type 15 - var type 2
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+ block 2147483645 - operand
+ var_decl var1 test43.cpp 110:15 2147483644 - block vars
+ - isUsed: 1
+ integer_cst 576 15 - decl size 2
+ record_type 15 - var type 2
+ type_decl Data1 test43.cpp 21:8 14 - type name
+ - isAutogenerated: 1
+end dump