summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/test19-03.txt40
-rw-r--r--test/test20-03.txt28
-rw-r--r--test/test21-03.txt112
-rw-r--r--test/test22-01.txt403
-rw-r--r--test/test22-02.txt4
-rw-r--r--test/test22-03.txt206
-rw-r--r--test/test22.cpp33
7 files changed, 687 insertions, 139 deletions
diff --git a/test/test19-03.txt b/test/test19-03.txt
index 05b87e0..cfc3af8 100644
--- a/test/test19-03.txt
+++ b/test/test19-03.txt
@@ -52,16 +52,16 @@ if_stmt : ptr1, ptr2, ptr3,
ne_expr : ptr1, ptr2, ptr3,
var_decl ptr3: ptr1, ptr2, ptr3,
integer_cst 0: ptr1, ptr2, ptr3,
-cleanup_point_expr : ptr1, ptr2,
-expr_stmt : ptr1, ptr2,
-convert_expr : ptr1, ptr2,
-modify_expr : ptr1, ptr2,
-component_ref : ptr1, ptr2,
-indirect_ref : ptr1, ptr2,
-var_decl ptr3: ptr1, ptr2,
-field_decl val: ptr1, ptr2,
-integer_cst 32: ptr1, ptr2,
-integer_cst 100: ptr1, ptr2,
+cleanup_point_expr : ptr2,
+expr_stmt : ptr2,
+convert_expr : ptr2,
+modify_expr : ptr2,
+component_ref : ptr2,
+indirect_ref : ptr2,
+var_decl ptr3: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+integer_cst 100: ptr2,
var_decl ptr3: ptr1, ptr2,
integer_cst 64: ptr1, ptr2, ptr3,
parm_decl ptr1: ptr1, ptr2, ptr3,
@@ -82,16 +82,16 @@ if_stmt : ptr1, ptr2, ptr3,
ne_expr : ptr1, ptr2, ptr3,
var_decl ptr3: ptr1, ptr2, ptr3,
integer_cst 0: ptr1, ptr2, ptr3,
-cleanup_point_expr : ptr1, ptr2,
-expr_stmt : ptr1, ptr2,
-convert_expr : ptr1, ptr2,
-modify_expr : ptr1, ptr2,
-component_ref : ptr1, ptr2,
-indirect_ref : ptr1, ptr2,
-var_decl ptr3: ptr1, ptr2,
-field_decl val: ptr1, ptr2,
-integer_cst 32: ptr1, ptr2,
-integer_cst 100: ptr1, ptr2,
+cleanup_point_expr : ptr2,
+expr_stmt : ptr2,
+convert_expr : ptr2,
+modify_expr : ptr2,
+component_ref : ptr2,
+indirect_ref : ptr2,
+var_decl ptr3: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+integer_cst 100: ptr2,
if_stmt : ptr1, ptr2, ptr3,
truth_andif_expr : ptr1, ptr2, ptr3,
eq_expr : ptr1, ptr2, ptr3,
diff --git a/test/test20-03.txt b/test/test20-03.txt
index 9ffce5e..c76a426 100644
--- a/test/test20-03.txt
+++ b/test/test20-03.txt
@@ -47,13 +47,13 @@ cond_expr : ptr1, ptr2, ptr3,
ne_expr : ptr1, ptr2, ptr3,
var_decl ptr3: ptr1, ptr2, ptr3,
integer_cst 0: ptr1, ptr2, ptr3,
-modify_expr : ptr1, ptr2,
-component_ref : ptr1, ptr2,
-indirect_ref : ptr1, ptr2,
-var_decl ptr3: ptr1, ptr2,
-field_decl val: ptr1, ptr2,
-integer_cst 32: ptr1, ptr2,
-integer_cst 100: ptr1, ptr2,
+modify_expr : ptr2,
+component_ref : ptr2,
+indirect_ref : ptr2,
+var_decl ptr3: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+integer_cst 100: ptr2,
var_decl ptr3: ptr1, ptr2,
integer_cst 64: ptr1, ptr2, ptr3,
parm_decl ptr1: ptr1, ptr2, ptr3,
@@ -73,13 +73,13 @@ cond_expr : ptr1, ptr2, ptr3,
ne_expr : ptr1, ptr2, ptr3,
var_decl ptr3: ptr1, ptr2, ptr3,
integer_cst 0: ptr1, ptr2, ptr3,
-modify_expr : ptr1, ptr2,
-component_ref : ptr1, ptr2,
-indirect_ref : ptr1, ptr2,
-var_decl ptr3: ptr1, ptr2,
-field_decl val: ptr1, ptr2,
-integer_cst 32: ptr1, ptr2,
-integer_cst 100: ptr1, ptr2,
+modify_expr : ptr2,
+component_ref : ptr2,
+indirect_ref : ptr2,
+var_decl ptr3: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+integer_cst 100: ptr2,
cond_expr : ptr1, ptr2, ptr3,
truth_andif_expr : ptr1, ptr2, ptr3,
eq_expr : ptr1, ptr2, ptr3,
diff --git a/test/test21-03.txt b/test/test21-03.txt
index 11cdbbf..8c1c46c 100644
--- a/test/test21-03.txt
+++ b/test/test21-03.txt
@@ -568,43 +568,43 @@ integer_cst 32: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
if_stmt : ptr1, ptr2,
ne_expr : ptr1, ptr2,
-component_ref : ptr2,
-indirect_ref : ptr2,
-var_decl ptr2: ptr2,
-field_decl val: ptr2,
-integer_cst 32: ptr2,
-integer_cst 0: ptr2,
+component_ref :
+indirect_ref :
+var_decl ptr2:
+field_decl val:
+integer_cst 32:
+integer_cst 0:
return_expr : ptr1, ptr2,
-init_expr : ptr2,
-result_decl : ptr2,
-integer_type : ptr2,
-type_decl int: ptr2,
-integer_cst 32: ptr2,
-integer_cst -2147483648: ptr2,
-integer_cst 2147483647: ptr2,
-integer_cst 32: ptr2,
-integer_cst 3: ptr2,
+init_expr :
+result_decl :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 32:
+integer_cst 3:
return_expr : ptr1, ptr2,
-init_expr : ptr2,
-result_decl : ptr2,
-integer_type : ptr2,
-type_decl int: ptr2,
-integer_cst 32: ptr2,
-integer_cst -2147483648: ptr2,
-integer_cst 2147483647: ptr2,
-integer_cst 32: ptr2,
-integer_cst 0: ptr2,
+init_expr :
+result_decl :
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+integer_cst 32:
+integer_cst 0:
var_decl tmpvar: ptr1,
-integer_cst 32: ptr2,
-integer_cst 0: ptr2,
-integer_type : ptr2,
-type_decl int: ptr2,
-integer_cst 32: ptr2,
-integer_cst -2147483648: ptr2,
-integer_cst 2147483647: ptr2,
-block : ptr1, ptr2,
-var_decl tmpvar: ptr2,
-var_decl ptr2: ptr2,
+integer_cst 32:
+integer_cst 0:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+block : ptr1,
+var_decl tmpvar:
+var_decl ptr2:
function_decl func2:
bind_expr : ptr1,
statement_list : ptr1,
@@ -640,30 +640,30 @@ integer_cst 2147483647: ptr1, ptr2,
integer_cst 32: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
decl_expr : ptr1, ptr2,
-var_decl outFilename: ptr1,
-integer_cst 32: ptr1,
-component_ref : ptr1,
-indirect_ref : ptr1,
-var_decl ptr2: ptr1,
-field_decl val: ptr1,
-integer_cst 32: ptr1,
-integer_type : ptr1,
-type_decl int: ptr1,
-integer_cst 32: ptr1,
-integer_cst -2147483648: ptr1,
-integer_cst 2147483647: ptr1,
+var_decl outFilename:
+integer_cst 32:
+component_ref :
+indirect_ref :
+var_decl ptr2:
+field_decl val:
+integer_cst 32:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
var_decl attempts: ptr1,
-integer_cst 32: ptr1,
-integer_cst 0: ptr1,
-integer_type : ptr1,
-type_decl int: ptr1,
-integer_cst 32: ptr1,
-integer_cst -2147483648: ptr1,
-integer_cst 2147483647: ptr1,
+integer_cst 32:
+integer_cst 0:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
block : ptr1,
-var_decl attempts: ptr1,
-var_decl ptr2: ptr1,
-var_decl outFilename: ptr1,
+var_decl attempts:
+var_decl ptr2:
+var_decl outFilename:
function_decl func3:
bind_expr : ptr1,
statement_list : ptr1,
diff --git a/test/test22-01.txt b/test/test22-01.txt
index e459737..288dcc8 100644
--- a/test/test22-01.txt
+++ b/test/test22-01.txt
@@ -24659,7 +24659,7 @@ function_decl func8 test22.cpp 81:10
block - operand
var_decl k test22.cpp 86:19 - block vars
var_decl test1 test22.cpp 88:13 - block vars
-function_decl func9 test22.cpp 91:6
+function_decl func9 test22.cpp 91:10
- isPublic: 1
method_type - function type
void_type - method return type
@@ -24700,12 +24700,12 @@ function_decl func9 test22.cpp 91:6
void_type - value
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
- result_decl test22.cpp 92:1 - function result
+ result_decl test22.cpp 92:5 - function result
- isAutogenerated: 1
void_type - result type
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
- parm_decl this test22.cpp 91:30 - argument
+ parm_decl this test22.cpp 91:33 - argument
- isAutogenerated: 1
pointer_type - decl type
record_type - nested type
@@ -24715,7 +24715,7 @@ function_decl func9 test22.cpp 91:6
- isAutogenerated: 1
integer_cst 64 - parm size
- isUsed: 1
- parm_decl chunk test22.cpp 91:25 - argument
+ parm_decl ptr1 test22.cpp 91:29 - argument
pointer_type - decl type
record_type - nested type
type_decl Data1 test22.cpp 6:8 - type name
@@ -24736,13 +24736,13 @@ function_decl func9 test22.cpp 91:6
- isAutogenerated: 1
integer_cst 64 - parm size
statement_list - code
- if_stmt test22.cpp 93:5 - statement
+ if_stmt test22.cpp 93:9 - statement
cleanup_point_expr - condition
- truth_orif_expr test22.cpp 93:16 - operand
- eq_expr test22.cpp 93:10 - operand
+ truth_orif_expr test22.cpp 93:19 - operand
+ eq_expr test22.cpp 93:14 - operand
nop_expr - operand
- isUsed: 1
- parm_decl chunk test22.cpp 91:25 - operand
+ parm_decl ptr1 test22.cpp 91:29 - operand
pointer_type - decl type
record_type - nested type
type_decl Data1 test22.cpp 6:8 - type name
@@ -24763,18 +24763,18 @@ function_decl func9 test22.cpp 91:6
- isAutogenerated: 1
integer_cst 64 - parm size
integer_cst 0 - operand
- call_expr test22.cpp 93:36 - operand
+ call_expr test22.cpp 93:38 - operand
addr_expr - function
function_decl empty /usr/include/c++/5/bits/basic_string.h 3217:7 - operand
- isExternal: 1
- isPublic: 1
method_type - function type
addr_expr - arg
- component_ref test22.cpp 93:26 - operand
+ component_ref test22.cpp 93:28 - operand
indirect_ref - object
nop_expr - ref
- isUsed: 1
- parm_decl chunk test22.cpp 91:25 - operand
+ parm_decl ptr1 test22.cpp 91:29 - operand
pointer_type - decl type
record_type - nested type
type_decl Data1 test22.cpp 6:8 - type name
@@ -24797,22 +24797,22 @@ function_decl func9 test22.cpp 91:6
field_decl str1 test22.cpp 20:17 - field
- signed
integer_cst 64 - decl size
- return_expr test22.cpp 94:9 - then
- cleanup_point_expr test22.cpp 95:19 - statement
- expr_stmt test22.cpp 95:19 - operand
+ return_expr test22.cpp 94:13 - then
+ cleanup_point_expr test22.cpp 95:22 - statement
+ expr_stmt test22.cpp 95:22 - operand
convert_expr - expresssion
- call_expr test22.cpp 95:18 - operand
+ call_expr test22.cpp 95:21 - operand
addr_expr - function
function_decl operator[] /usr/include/c++/5/bits/basic_string.h 3249:7 - operand
- isExternal: 1
- isPublic: 1
method_type - function type
addr_expr - arg
- component_ref test22.cpp 95:12 - operand
+ component_ref test22.cpp 95:15 - operand
indirect_ref - object
nop_expr - ref
- isUsed: 1
- parm_decl chunk test22.cpp 91:25 - operand
+ parm_decl ptr1 test22.cpp 91:29 - operand
pointer_type - decl type
record_type - nested type
type_decl Data1 test22.cpp 6:8 - type name
@@ -24836,6 +24836,375 @@ function_decl func9 test22.cpp 91:6
- signed
integer_cst 64 - decl size
integer_cst 0 - arg
+function_decl func10 test22.cpp 98:10
+- isPublic: 1
+ method_type - function type
+ void_type - method return type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ record_type - method base type
+ type_decl Object1 test22.cpp 35:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test22.cpp 36:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test22.cpp 35:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test22.cpp 36:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test22.cpp 99:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test22.cpp 98:34 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test22.cpp 35:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test22.cpp 36:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test22.cpp 98:30 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test22.cpp 109:9 - code
+ var_decl ptr2 test22.cpp 100:16 - operand
+ - isUsed: 1
+ integer_cst 64 - decl size
+ nop_expr - initial
+ - isUsed: 1
+ parm_decl ptr1 test22.cpp 98:30 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ pointer_type - var type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ statement_list - operand
+ decl_expr test22.cpp 100:23 - statement
+ var_decl ptr2 test22.cpp 100:16 - operand
+ - isUsed: 1
+ bind_expr test22.cpp 109:9 - statement
+ if_stmt test22.cpp 101:9 - operand
+ ne_expr - condition
+ var_decl ptr2 test22.cpp 100:16 - operand
+ - isUsed: 1
+ integer_cst 0 - operand
+ bind_expr test22.cpp 104:28 - then
+ var_decl k test22.cpp 103:17 - operand
+ integer_cst 32 - decl size
+ integer_cst 10 - initial
+ integer_type - var type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ statement_list - operand
+ cleanup_point_expr test22.cpp 103:21 - statement
+ decl_expr test22.cpp 103:21 - operand
+ var_decl k test22.cpp 103:17 - operand
+ cleanup_point_expr test22.cpp 104:28 - statement
+ expr_stmt test22.cpp 104:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test22.cpp 104:19 - operand
+ indirect_ref - object
+ nop_expr - ref
+ - isUsed: 1
+ parm_decl ptr1 test22.cpp 98:30 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ block - operand
+ var_decl k test22.cpp 103:17 - block vars
+ cleanup_point_expr test22.cpp 108:19 - else
+ expr_stmt test22.cpp 108:19 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ var_decl k test22.cpp 33:5 - operand
+ - isUsed: 1
+ integer_cst 32 - decl size
+ integer_type - var type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 20 - operand
+ block - operand
+ block - sub block
+ var_decl k test22.cpp 103:17 - block vars
+ block - operand
+ var_decl ptr2 test22.cpp 100:16 - block vars
+ - isUsed: 1
+ block - sub block
+ block - sub block
+ var_decl k test22.cpp 103:17 - block vars
+function_decl func11 test22.cpp 112:10
+- isPublic: 1
+ method_type - function type
+ void_type - method return type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ record_type - method base type
+ type_decl Object1 test22.cpp 35:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test22.cpp 36:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test22.cpp 35:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test22.cpp 36:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test22.cpp 113:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test22.cpp 112:34 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test22.cpp 35:7 - type name
+ - isAutogenerated: 1
+ type_decl Object1 test22.cpp 36:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test22.cpp 112:30 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ bind_expr test22.cpp 116:28 - code
+ var_decl ptr2 test22.cpp 114:16 - operand
+ - isUsed: 1
+ integer_cst 64 - decl size
+ nop_expr - initial
+ - isUsed: 1
+ parm_decl ptr1 test22.cpp 112:30 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ pointer_type - var type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ statement_list - operand
+ decl_expr test22.cpp 114:23 - statement
+ var_decl ptr2 test22.cpp 114:16 - operand
+ - isUsed: 1
+ if_stmt test22.cpp 115:9 - statement
+ ne_expr - condition
+ nop_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test22.cpp 112:30 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test22.cpp 6:8 - type name
+ - isAutogenerated: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ field_decl ptrval test22.cpp 18:12 - field
+ - unsigned
+ integer_cst 64 - decl size
+ field_decl arr test22.cpp 19:14 - field
+ - signed
+ integer_cst 96 - decl size
+ field_decl str1 test22.cpp 20:17 - field
+ - signed
+ integer_cst 64 - decl size
+ type_decl Data1 test22.cpp 7:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ cleanup_point_expr test22.cpp 116:28 - then
+ expr_stmt test22.cpp 116:28 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test22.cpp 116:19 - operand
+ indirect_ref - object
+ var_decl ptr2 test22.cpp 114:16 - ref
+ - isUsed: 1
+ field_decl val test22.cpp 17:9 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+ block - operand
+ var_decl ptr2 test22.cpp 114:16 - block vars
+ - isUsed: 1
function_decl fill /usr/include/c++/5/bits/stl_algobase.h 736:5
- isPublic: 1
function_type - function type
diff --git a/test/test22-02.txt b/test/test22-02.txt
index c7563ae..fcc3999 100644
--- a/test/test22-02.txt
+++ b/test/test22-02.txt
@@ -235,7 +235,9 @@ __comp_dtor :
func6: pointer_type ptr1,
func7: pointer_type ptr1,
func8: pointer_type ptr1,
-func9: pointer_type chunk,
+func9: pointer_type ptr1,
+func10: pointer_type ptr1,
+func11: pointer_type ptr1,
fill: pointer_type __first, pointer_type __last,
_Alloc_hider:
__base_dtor :
diff --git a/test/test22-03.txt b/test/test22-03.txt
index 972e90c..2304285 100644
--- a/test/test22-03.txt
+++ b/test/test22-03.txt
@@ -2995,33 +2995,33 @@ block : ptr1,
var_decl k:
var_decl test1:
function_decl func9:
-statement_list : chunk,
-if_stmt : chunk,
-cleanup_point_expr : chunk,
-truth_orif_expr : chunk,
-eq_expr : chunk,
-parm_decl chunk: chunk,
-pointer_type : chunk,
-record_type : chunk,
-type_decl Data1: chunk,
-field_decl val: chunk,
-integer_cst 32: chunk,
-field_decl ptrval: chunk,
-integer_cst 64: chunk,
-field_decl arr: chunk,
-integer_cst 96: chunk,
-field_decl str1: chunk,
-integer_cst 64: chunk,
-type_decl Data1: chunk,
-integer_cst 64: chunk,
-integer_cst 0: chunk,
+statement_list : ptr1,
+if_stmt : ptr1,
+cleanup_point_expr : ptr1,
+truth_orif_expr : ptr1,
+eq_expr : ptr1,
+parm_decl ptr1: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+field_decl ptrval: ptr1,
+integer_cst 64: ptr1,
+field_decl arr: ptr1,
+integer_cst 96: ptr1,
+field_decl str1: ptr1,
+integer_cst 64: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+integer_cst 0: ptr1,
call_expr :
addr_expr :
function_decl empty:
addr_expr :
component_ref :
indirect_ref :
-parm_decl chunk:
+parm_decl ptr1:
pointer_type :
record_type :
type_decl Data1:
@@ -3037,8 +3037,8 @@ type_decl Data1:
integer_cst 64:
field_decl str1:
integer_cst 64:
-return_expr : chunk,
-cleanup_point_expr : chunk,
+return_expr : ptr1,
+cleanup_point_expr : ptr1,
expr_stmt :
convert_expr :
call_expr :
@@ -3047,7 +3047,7 @@ function_decl operator[]:
addr_expr :
component_ref :
indirect_ref :
-parm_decl chunk:
+parm_decl ptr1:
pointer_type :
record_type :
type_decl Data1:
@@ -3064,6 +3064,164 @@ integer_cst 64:
field_decl str1:
integer_cst 64:
integer_cst 0:
+function_decl func10:
+bind_expr : ptr1,
+statement_list : ptr1,
+decl_expr : ptr1,
+var_decl ptr2: ptr1, ptr2,
+bind_expr : ptr1, ptr2,
+if_stmt : ptr1, ptr2,
+ne_expr : ptr1, ptr2,
+var_decl ptr2: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+bind_expr :
+statement_list :
+cleanup_point_expr :
+decl_expr :
+var_decl k:
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr1:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+field_decl ptrval:
+integer_cst 64:
+field_decl arr:
+integer_cst 96:
+field_decl str1:
+integer_cst 64:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 100:
+var_decl k:
+integer_cst 32:
+integer_cst 10:
+integer_type :
+type_decl int:
+integer_cst 32:
+integer_cst -2147483648:
+integer_cst 2147483647:
+block :
+var_decl k:
+cleanup_point_expr : ptr1, ptr2,
+expr_stmt : ptr1, ptr2,
+convert_expr : ptr1, ptr2,
+modify_expr : ptr1, ptr2,
+var_decl k: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_type : ptr1, ptr2,
+type_decl int: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst -2147483648: ptr1, ptr2,
+integer_cst 2147483647: ptr1, ptr2,
+integer_cst 20: ptr1, ptr2,
+block : ptr1, ptr2,
+block : ptr1, ptr2,
+var_decl k: ptr1, ptr2,
+var_decl ptr2: ptr1,
+integer_cst 64: ptr1, ptr2,
+parm_decl ptr1: ptr1, ptr2,
+pointer_type : ptr1, ptr2,
+record_type : ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+field_decl ptrval: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl arr: ptr1, ptr2,
+integer_cst 96: ptr1, ptr2,
+field_decl str1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+pointer_type : ptr1, ptr2,
+record_type : ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+field_decl ptrval: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl arr: ptr1, ptr2,
+integer_cst 96: ptr1, ptr2,
+field_decl str1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+block : ptr1, ptr2,
+var_decl ptr2: ptr1, ptr2,
+block : ptr1, ptr2,
+block : ptr1, ptr2,
+var_decl k: ptr1, ptr2,
+function_decl func11:
+bind_expr : ptr1,
+statement_list : ptr1,
+decl_expr : ptr1,
+var_decl ptr2: ptr1, ptr2,
+if_stmt : ptr1, ptr2,
+ne_expr : ptr1, ptr2,
+parm_decl ptr1: ptr1, ptr2,
+pointer_type : ptr1, ptr2,
+record_type : ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+field_decl ptrval: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl arr: ptr1, ptr2,
+integer_cst 96: ptr1, ptr2,
+field_decl str1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+cleanup_point_expr :
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+var_decl ptr2:
+field_decl val:
+integer_cst 32:
+integer_cst 200:
+var_decl ptr2: ptr1,
+integer_cst 64: ptr1, ptr2,
+parm_decl ptr1: ptr1, ptr2,
+pointer_type : ptr1, ptr2,
+record_type : ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+field_decl ptrval: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl arr: ptr1, ptr2,
+integer_cst 96: ptr1, ptr2,
+field_decl str1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+pointer_type : ptr1, ptr2,
+record_type : ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+field_decl ptrval: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl arr: ptr1, ptr2,
+integer_cst 96: ptr1, ptr2,
+field_decl str1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+type_decl Data1: ptr1, ptr2,
+block : ptr1, ptr2,
+var_decl ptr2: ptr1, ptr2,
function_decl fill:
cleanup_point_expr : __first, __last,
expr_stmt : __first, __last,
diff --git a/test/test22.cpp b/test/test22.cpp
index 6917105..36fd9ae 100644
--- a/test/test22.cpp
+++ b/test/test22.cpp
@@ -88,12 +88,31 @@ class Object1
int test1 = ptr1->val;
}
-void func9(Data1 *const chunk)
-{
- if (!chunk || chunk->str1.empty())
- return;
- chunk->str1[0];
-}
+ void func9(Data1 *const ptr1)
+ {
+ if (!ptr1 || ptr1->str1.empty())
+ return;
+ ptr1->str1[0];
+ }
-};
+ void func10(Data1 *const ptr1)
+ {
+ Data1 *ptr2 = ptr1;
+ if (ptr2)
+ {
+ int k = 10;
+ ptr1->val = 100;
+ }
+ else
+ {
+ k = 20;
+ }
+ }
+ void func11(Data1 *const ptr1)
+ {
+ Data1 *ptr2 = ptr1;
+ if (ptr1)
+ ptr2->val = 200;
+ }
+};