summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-20 21:08:33 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-20 21:08:33 +0300
commitf9297a22459a24b6909d89bd5491f9e76062b82a (patch)
tree6d26c4047e447edf22d7159723926b60edbd605f
parent06f64c3e2bcb6433157ac095f95ba4de8f3ea9a5 (diff)
downloadparanucker-f9297a22459a24b6909d89bd5491f9e76062b82a.tar.gz
paranucker-f9297a22459a24b6909d89bd5491f9e76062b82a.tar.bz2
paranucker-f9297a22459a24b6909d89bd5491f9e76062b82a.tar.xz
paranucker-f9297a22459a24b6909d89bd5491f9e76062b82a.zip
Update test 11. Update test results.
-rw-r--r--test/test09-03.txt20
-rw-r--r--test/test10-03.txt110
-rw-r--r--test/test11-01.txt712
-rw-r--r--test/test11-02.txt4
-rw-r--r--test/test11-03.txt301
-rw-r--r--test/test11-04.txt23
-rw-r--r--test/test11.cpp50
7 files changed, 1141 insertions, 79 deletions
diff --git a/test/test09-03.txt b/test/test09-03.txt
index b336ee1..8005cd5 100644
--- a/test/test09-03.txt
+++ b/test/test09-03.txt
@@ -548,16 +548,16 @@ integer_cst -2147483648: ptr1, ptr2,
integer_cst 2147483647: ptr1, ptr2,
integer_cst 64: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
-ne_expr : ptr1, ptr2,
-parm_decl ptr2: ptr1, ptr2,
-pointer_type : 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 64: ptr1, ptr2,
-integer_cst 0: ptr1, ptr2,
+ne_expr : ptr2,
+parm_decl ptr2: ptr2,
+pointer_type : ptr2,
+integer_type : ptr2,
+type_decl int: ptr2,
+integer_cst 32: ptr2,
+integer_cst -2147483648: ptr2,
+integer_cst 2147483647: ptr2,
+integer_cst 64: ptr2,
+integer_cst 0: ptr2,
return_expr :
cleanup_point_expr : ptr1, ptr2,
expr_stmt : ptr1, ptr2,
diff --git a/test/test10-03.txt b/test/test10-03.txt
index 9d1bf9d..f64aeec 100644
--- a/test/test10-03.txt
+++ b/test/test10-03.txt
@@ -490,16 +490,16 @@ integer_cst -2147483648: ptr1, ptr2,
integer_cst 2147483647: ptr1, ptr2,
integer_cst 64: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
-ne_expr : ptr1, ptr2,
-parm_decl ptr2: ptr1, ptr2,
-pointer_type : 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 64: ptr1, ptr2,
-integer_cst 0: ptr1, ptr2,
+ne_expr : ptr2,
+parm_decl ptr2: ptr2,
+pointer_type : ptr2,
+integer_type : ptr2,
+type_decl int: ptr2,
+integer_cst 32: ptr2,
+integer_cst -2147483648: ptr2,
+integer_cst 2147483647: ptr2,
+integer_cst 64: ptr2,
+integer_cst 0: ptr2,
statement_list :
cleanup_point_expr :
expr_stmt :
@@ -667,16 +667,16 @@ integer_cst -2147483648: ptr1, ptr2,
integer_cst 2147483647: ptr1, ptr2,
integer_cst 64: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
-ne_expr : ptr1, ptr2,
-parm_decl ptr2: ptr1, ptr2,
-pointer_type : 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 64: ptr1, ptr2,
-integer_cst 0: ptr1, ptr2,
+ne_expr : ptr2,
+parm_decl ptr2: ptr2,
+pointer_type : ptr2,
+integer_type : ptr2,
+type_decl int: ptr2,
+integer_cst 32: ptr2,
+integer_cst -2147483648: ptr2,
+integer_cst 2147483647: ptr2,
+integer_cst 64: ptr2,
+integer_cst 0: ptr2,
statement_list :
cleanup_point_expr :
expr_stmt :
@@ -878,31 +878,31 @@ integer_cst -2147483648: ptr1, ptr2,
integer_cst 2147483647: ptr1, ptr2,
integer_cst 64: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
-ne_expr : ptr1, ptr2,
-parm_decl ptr2: ptr1, ptr2,
-pointer_type : 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 64: ptr1, ptr2,
-integer_cst 0: ptr1, ptr2,
-ne_expr : ptr1, ptr2,
-component_ref : ptr1, ptr2,
-indirect_ref : ptr1, ptr2,
-nop_expr : ptr1, ptr2,
-parm_decl this: ptr1, ptr2,
-pointer_type : ptr1, ptr2,
-record_type : ptr1, ptr2,
-type_decl Object1: ptr1, ptr2,
-field_decl k: ptr1, ptr2,
-integer_cst 32: ptr1, ptr2,
-type_decl Object1: ptr1, ptr2,
-integer_cst 64: ptr1, ptr2,
-field_decl k: ptr1, ptr2,
-integer_cst 32: ptr1, ptr2,
-integer_cst 0: ptr1, ptr2,
+ne_expr : ptr2,
+parm_decl ptr2: ptr2,
+pointer_type : ptr2,
+integer_type : ptr2,
+type_decl int: ptr2,
+integer_cst 32: ptr2,
+integer_cst -2147483648: ptr2,
+integer_cst 2147483647: ptr2,
+integer_cst 64: ptr2,
+integer_cst 0: ptr2,
+ne_expr :
+component_ref :
+indirect_ref :
+nop_expr :
+parm_decl this:
+pointer_type :
+record_type :
+type_decl Object1:
+field_decl k:
+integer_cst 32:
+type_decl Object1:
+integer_cst 64:
+field_decl k:
+integer_cst 32:
+integer_cst 0:
statement_list : ptr1, ptr2,
cleanup_point_expr : ptr1, ptr2,
expr_stmt : ptr1, ptr2,
@@ -1024,16 +1024,16 @@ integer_cst -2147483648: ptr1, ptr2,
integer_cst 2147483647: ptr1, ptr2,
integer_cst 64: ptr1, ptr2,
integer_cst 0: ptr1, ptr2,
-ne_expr : ptr1, ptr2,
-parm_decl ptr2: ptr1, ptr2,
-pointer_type : 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 64: ptr1, ptr2,
-integer_cst 0: ptr1, ptr2,
+ne_expr : ptr2,
+parm_decl ptr2: ptr2,
+pointer_type : ptr2,
+integer_type : ptr2,
+type_decl int: ptr2,
+integer_cst 32: ptr2,
+integer_cst -2147483648: ptr2,
+integer_cst 2147483647: ptr2,
+integer_cst 64: ptr2,
+integer_cst 0: ptr2,
ne_expr : ptr1, ptr2,
parm_decl ptr1: ptr1, ptr2,
pointer_type : ptr1, ptr2,
diff --git a/test/test11-01.txt b/test/test11-01.txt
index f89c71a..0fe5d8e 100644
--- a/test/test11-01.txt
+++ b/test/test11-01.txt
@@ -121,7 +121,7 @@ function_decl func1 test11.cpp 11:10
field_decl val test11.cpp 4:13 - field
- signed
integer_cst 32 - decl size
- integer_cst 1 - operand
+ integer_cst 100 - operand
return_expr test11.cpp 15:13 - then
cleanup_point_expr test11.cpp 18:24 - statement
expr_stmt test11.cpp 18:24 - operand
@@ -144,7 +144,7 @@ function_decl func1 test11.cpp 11:10
field_decl val test11.cpp 4:13 - field
- signed
integer_cst 32 - decl size
- integer_cst 100 - operand
+ integer_cst 200 - operand
function_decl func2 test11.cpp 21:10
- isPublic: 1
method_type - function type
@@ -268,7 +268,7 @@ function_decl func2 test11.cpp 21:10
field_decl val test11.cpp 4:13 - field
- signed
integer_cst 32 - decl size
- integer_cst 1 - operand
+ integer_cst 100 - operand
statement_list - then
cleanup_point_expr test11.cpp 25:28 - statement
expr_stmt test11.cpp 25:28 - operand
@@ -291,7 +291,7 @@ function_decl func2 test11.cpp 21:10
field_decl val test11.cpp 4:13 - field
- signed
integer_cst 32 - decl size
- integer_cst 100 - operand
+ integer_cst 200 - operand
return_expr test11.cpp 26:13 - statement
cleanup_point_expr test11.cpp 29:24 - statement
expr_stmt test11.cpp 29:24 - operand
@@ -314,4 +314,708 @@ function_decl func2 test11.cpp 21:10
field_decl val test11.cpp 4:13 - field
- signed
integer_cst 32 - decl size
+ integer_cst 300 - operand
+function_decl func3 test11.cpp 32: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 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test11.cpp 33:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test11.cpp 32:40 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 32:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ parm_decl ptr2 test11.cpp 32:36 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test11.cpp 34:9 - statement
+ truth_orif_expr test11.cpp 34:18 - condition
+ ne_expr - operand
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 32:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test11.cpp 34:31 - operand
+ component_ref test11.cpp 34:27 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 32:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ return_expr test11.cpp 36:13 - then
+ cleanup_point_expr test11.cpp 39:24 - statement
+ expr_stmt test11.cpp 39:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test11.cpp 39:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 32:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+function_decl func4 test11.cpp 42: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 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test11.cpp 43:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test11.cpp 42:40 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 42:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ parm_decl ptr2 test11.cpp 42:36 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test11.cpp 44:9 - statement
+ truth_andif_expr test11.cpp 44:19 - condition
+ eq_expr test11.cpp 44:14 - operand
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 42:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test11.cpp 44:32 - operand
+ component_ref test11.cpp 44:28 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 42:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ return_expr test11.cpp 46:13 - then
+ cleanup_point_expr test11.cpp 49:24 - statement
+ expr_stmt test11.cpp 49:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test11.cpp 49:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 42:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+function_decl func5 test11.cpp 52: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 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test11.cpp 53:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test11.cpp 52:40 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 52:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 52:36 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test11.cpp 54:9 - statement
+ truth_orif_expr test11.cpp 54:41 - condition
+ truth_orif_expr test11.cpp 54:20 - operand
+ eq_expr test11.cpp 54:15 - operand
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 52:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test11.cpp 54:33 - operand
+ component_ref test11.cpp 54:29 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 52:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ truth_orif_expr test11.cpp 54:51 - operand
+ eq_expr test11.cpp 54:46 - operand
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 52:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test11.cpp 54:64 - operand
+ component_ref test11.cpp 54:60 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 52:36 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
integer_cst 200 - operand
+ return_expr test11.cpp 56:13 - then
+ cleanup_point_expr test11.cpp 59:24 - statement
+ expr_stmt test11.cpp 59:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test11.cpp 59:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 52:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 300 - operand
+ cleanup_point_expr test11.cpp 60:24 - statement
+ expr_stmt test11.cpp 60:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test11.cpp 60:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 52:36 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 400 - operand
+function_decl func6 test11.cpp 63: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 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test11.cpp 64:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test11.cpp 63:40 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test11.cpp 7:7 - type name
+ - isAutogenerated: 1
+ field_decl k test11.cpp 9:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test11.cpp 8:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 63:23 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 63:36 - argument
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+ if_stmt test11.cpp 65:9 - statement
+ truth_andif_expr test11.cpp 65:41 - condition
+ truth_orif_expr test11.cpp 65:20 - operand
+ eq_expr test11.cpp 65:15 - operand
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 63:23 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test11.cpp 65:33 - operand
+ component_ref test11.cpp 65:29 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 63:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 100 - operand
+ truth_orif_expr test11.cpp 65:51 - operand
+ eq_expr test11.cpp 65:46 - operand
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 63:36 - operand
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ integer_cst 0 - operand
+ eq_expr test11.cpp 65:64 - operand
+ component_ref test11.cpp 65:60 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 63:36 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 200 - operand
+ return_expr test11.cpp 67:13 - then
+ cleanup_point_expr test11.cpp 70:24 - statement
+ expr_stmt test11.cpp 70:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test11.cpp 70:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr1 test11.cpp 63:23 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 300 - operand
+ cleanup_point_expr test11.cpp 71:24 - statement
+ expr_stmt test11.cpp 71:24 - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref test11.cpp 71:15 - operand
+ indirect_ref - object
+ - isUsed: 1
+ parm_decl ptr2 test11.cpp 63:36 - ref
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Data1 test11.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Data1 test11.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ field_decl val test11.cpp 4:13 - field
+ - signed
+ integer_cst 32 - decl size
+ integer_cst 400 - operand
diff --git a/test/test11-02.txt b/test/test11-02.txt
index 3390e93..f9bb543 100644
--- a/test/test11-02.txt
+++ b/test/test11-02.txt
@@ -1,2 +1,6 @@
func1: pointer_type ptr1, pointer_type ptr2,
func2: pointer_type ptr1, pointer_type ptr2,
+func3: pointer_type ptr1, pointer_type ptr2,
+func4: pointer_type ptr1, pointer_type ptr2,
+func5: pointer_type ptr1, pointer_type ptr2,
+func6: pointer_type ptr1, pointer_type ptr2,
diff --git a/test/test11-03.txt b/test/test11-03.txt
index 5e7e1d1..842653e 100644
--- a/test/test11-03.txt
+++ b/test/test11-03.txt
@@ -25,7 +25,7 @@ type_decl Data1: ptr2,
integer_cst 64: ptr2,
field_decl val: ptr2,
integer_cst 32: ptr2,
-integer_cst 1: ptr2,
+integer_cst 100: ptr2,
return_expr : ptr1, ptr2,
cleanup_point_expr : ptr1, ptr2,
expr_stmt : ptr2,
@@ -43,7 +43,7 @@ type_decl Data1: ptr2,
integer_cst 64: ptr2,
field_decl val: ptr2,
integer_cst 32: ptr2,
-integer_cst 100: ptr2,
+integer_cst 200: ptr2,
function_decl func2:
statement_list : ptr1, ptr2,
if_stmt : ptr1, ptr2,
@@ -71,7 +71,7 @@ type_decl Data1: ptr2,
integer_cst 64: ptr2,
field_decl val: ptr2,
integer_cst 32: ptr2,
-integer_cst 1: ptr2,
+integer_cst 100: ptr2,
statement_list : ptr1, ptr2,
cleanup_point_expr : ptr1, ptr2,
expr_stmt : ptr1, ptr2,
@@ -80,7 +80,7 @@ modify_expr : ptr1, ptr2,
component_ref : ptr1, ptr2,
test11.cpp: In member function 'void Object1::func2(Data1*, Data1*)':
test11.cpp:25:19: warning: Using parameter 'ptr1' without checking for null pointer
- ptr1->val = 100;
+ ptr1->val = 200;
^
indirect_ref : ptr1, ptr2,
parm_decl ptr1: ptr1, ptr2,
@@ -93,7 +93,7 @@ type_decl Data1: ptr1, ptr2,
integer_cst 64: ptr1, ptr2,
field_decl val: ptr1, ptr2,
integer_cst 32: ptr1, ptr2,
-integer_cst 100: ptr1, ptr2,
+integer_cst 200: ptr1, ptr2,
return_expr : ptr1, ptr2,
cleanup_point_expr : ptr1, ptr2,
expr_stmt : ptr1, ptr2,
@@ -101,6 +101,112 @@ convert_expr : ptr1, ptr2,
modify_expr : ptr1, ptr2,
component_ref : ptr1, ptr2,
test11.cpp:29:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+indirect_ref : 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst 300: ptr1, ptr2,
+function_decl func3:
+statement_list : ptr1, ptr2,
+if_stmt : ptr1, ptr2,
+truth_orif_expr : 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+eq_expr : ptr1, ptr2,
+component_ref : ptr1, ptr2,
+test11.cpp: In member function 'void Object1::func3(Data1*, Data1*)':
+test11.cpp:34:27: warning: Using parameter 'ptr1' without checking for null pointer
+ if (ptr1 || ptr1->val == 100)
+ ^
+indirect_ref : 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst 100: ptr1, ptr2,
+return_expr : ptr1, ptr2,
+cleanup_point_expr : ptr1, ptr2,
+expr_stmt : ptr1, ptr2,
+convert_expr : ptr1, ptr2,
+modify_expr : ptr1, ptr2,
+component_ref : ptr1, ptr2,
+test11.cpp:39:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+indirect_ref : 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst 200: ptr1, ptr2,
+function_decl func4:
+statement_list : ptr1, ptr2,
+if_stmt : ptr1, ptr2,
+truth_andif_expr : ptr1, ptr2,
+eq_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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+eq_expr : ptr1, ptr2,
+component_ref : ptr1, ptr2,
+test11.cpp: In member function 'void Object1::func4(Data1*, Data1*)':
+test11.cpp:44:28: warning: Using parameter 'ptr1' without checking for null pointer
+ if (!ptr1 && ptr1->val == 100)
+ ^
+indirect_ref : 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst 100: ptr1, ptr2,
+return_expr : ptr1, ptr2,
+cleanup_point_expr : ptr1, ptr2,
+expr_stmt : ptr1, ptr2,
+convert_expr : ptr1, ptr2,
+modify_expr : ptr1, ptr2,
+component_ref : ptr1, ptr2,
+test11.cpp:49:15: warning: Using parameter 'ptr1' without checking for null pointer
ptr1->val = 200;
^
indirect_ref : ptr1, ptr2,
@@ -115,3 +221,188 @@ integer_cst 64: ptr1, ptr2,
field_decl val: ptr1, ptr2,
integer_cst 32: ptr1, ptr2,
integer_cst 200: ptr1, ptr2,
+function_decl func5:
+statement_list : ptr1, ptr2,
+if_stmt : ptr1, ptr2,
+truth_orif_expr : ptr1, ptr2,
+truth_orif_expr : ptr1, ptr2,
+eq_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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+eq_expr : ptr2,
+component_ref : ptr2,
+indirect_ref : ptr2,
+parm_decl ptr1: ptr2,
+pointer_type : ptr2,
+record_type : ptr2,
+type_decl Data1: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+type_decl Data1: ptr2,
+integer_cst 64: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+integer_cst 100: ptr2,
+truth_orif_expr : ptr2,
+eq_expr : ptr2,
+parm_decl ptr2: ptr2,
+pointer_type : ptr2,
+record_type : ptr2,
+type_decl Data1: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+type_decl Data1: ptr2,
+integer_cst 64: ptr2,
+integer_cst 0: ptr2,
+eq_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr2:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 200:
+return_expr : ptr1, ptr2,
+cleanup_point_expr : ptr1, ptr2,
+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:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 300:
+cleanup_point_expr : ptr1, ptr2,
+expr_stmt :
+convert_expr :
+modify_expr :
+component_ref :
+indirect_ref :
+parm_decl ptr2:
+pointer_type :
+record_type :
+type_decl Data1:
+field_decl val:
+integer_cst 32:
+type_decl Data1:
+integer_cst 64:
+field_decl val:
+integer_cst 32:
+integer_cst 400:
+function_decl func6:
+statement_list : ptr1, ptr2,
+if_stmt : ptr1, ptr2,
+truth_andif_expr : ptr1, ptr2,
+truth_orif_expr : ptr1, ptr2,
+eq_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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+eq_expr : ptr2,
+component_ref : ptr2,
+indirect_ref : ptr2,
+parm_decl ptr1: ptr2,
+pointer_type : ptr2,
+record_type : ptr2,
+type_decl Data1: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+type_decl Data1: ptr2,
+integer_cst 64: ptr2,
+field_decl val: ptr2,
+integer_cst 32: ptr2,
+integer_cst 100: ptr2,
+truth_orif_expr : ptr1, ptr2,
+eq_expr : ptr1, ptr2,
+parm_decl ptr2: 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+integer_cst 0: ptr1, ptr2,
+eq_expr : ptr1,
+component_ref : ptr1,
+indirect_ref : ptr1,
+parm_decl ptr2: ptr1,
+pointer_type : ptr1,
+record_type : ptr1,
+type_decl Data1: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+type_decl Data1: ptr1,
+integer_cst 64: ptr1,
+field_decl val: ptr1,
+integer_cst 32: ptr1,
+integer_cst 200: ptr1,
+return_expr : ptr1, ptr2,
+cleanup_point_expr : ptr1, ptr2,
+expr_stmt : ptr1, ptr2,
+convert_expr : ptr1, ptr2,
+modify_expr : ptr1, ptr2,
+component_ref : ptr1, ptr2,
+test11.cpp: In member function 'void Object1::func6(Data1*, Data1*)':
+test11.cpp:70:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+indirect_ref : 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst 300: ptr1, ptr2,
+cleanup_point_expr : ptr1, ptr2,
+expr_stmt : ptr1, ptr2,
+convert_expr : ptr1, ptr2,
+modify_expr : ptr1, ptr2,
+component_ref : ptr1, ptr2,
+test11.cpp:71:15: warning: Using parameter 'ptr2' without checking for null pointer
+ ptr2->val = 400;
+ ^
+indirect_ref : ptr1, ptr2,
+parm_decl ptr2: 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,
+type_decl Data1: ptr1, ptr2,
+integer_cst 64: ptr1, ptr2,
+field_decl val: ptr1, ptr2,
+integer_cst 32: ptr1, ptr2,
+integer_cst 400: ptr1, ptr2,
diff --git a/test/test11-04.txt b/test/test11-04.txt
index cd4bfc0..62a6828 100644
--- a/test/test11-04.txt
+++ b/test/test11-04.txt
@@ -1,7 +1,28 @@
test11.cpp: In member function 'void Object1::func2(Data1*, Data1*)':
test11.cpp:25:19: warning: Using parameter 'ptr1' without checking for null pointer
- ptr1->val = 100;
+ ptr1->val = 200;
^
test11.cpp:29:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+test11.cpp: In member function 'void Object1::func3(Data1*, Data1*)':
+test11.cpp:34:27: warning: Using parameter 'ptr1' without checking for null pointer
+ if (ptr1 || ptr1->val == 100)
+ ^
+test11.cpp:39:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 200;
+ ^
+test11.cpp: In member function 'void Object1::func4(Data1*, Data1*)':
+test11.cpp:44:28: warning: Using parameter 'ptr1' without checking for null pointer
+ if (!ptr1 && ptr1->val == 100)
+ ^
+test11.cpp:49:15: warning: Using parameter 'ptr1' without checking for null pointer
ptr1->val = 200;
^
+test11.cpp: In member function 'void Object1::func6(Data1*, Data1*)':
+test11.cpp:70:15: warning: Using parameter 'ptr1' without checking for null pointer
+ ptr1->val = 300;
+ ^
+test11.cpp:71:15: warning: Using parameter 'ptr2' without checking for null pointer
+ ptr2->val = 400;
+ ^
diff --git a/test/test11.cpp b/test/test11.cpp
index 4debb95..7e4fd2a 100644
--- a/test/test11.cpp
+++ b/test/test11.cpp
@@ -10,22 +10,64 @@ class Object1
void func1(Data1 *ptr1, Data1 *ptr2)
{
- if (!ptr1 || ptr1->val == 1)
+ if (!ptr1 || ptr1->val == 100)
{
return;
}
- ptr1->val = 100;
+ ptr1->val = 200;
}
void func2(Data1 *ptr1, Data1 *ptr2)
{
- if (ptr1 && ptr1->val == 1)
+ if (ptr1 && ptr1->val == 100)
+ {
+ ptr1->val = 200;
+ return;
+ }
+
+ ptr1->val = 300;
+ }
+
+ void func3(Data1 *ptr1, Data1 *ptr2)
+ {
+ if (ptr1 || ptr1->val == 100)
+ {
+ return;
+ }
+
+ ptr1->val = 200;
+ }
+
+ void func4(Data1 *ptr1, Data1 *ptr2)
+ {
+ if (!ptr1 && ptr1->val == 100)
{
- ptr1->val = 100;
return;
}
ptr1->val = 200;
}
+
+ void func5(Data1 *ptr1, Data1 *ptr2)
+ {
+ if ((!ptr1 || ptr1->val == 100) || (!ptr2 || ptr2->val == 200))
+ {
+ return;
+ }
+
+ ptr1->val = 300;
+ ptr2->val = 400;
+ }
+
+ void func6(Data1 *ptr1, Data1 *ptr2)
+ {
+ if ((!ptr1 || ptr1->val == 100) && (!ptr2 || ptr2->val == 200))
+ {
+ return;
+ }
+
+ ptr1->val = 300;
+ ptr2->val = 400;
+ }
};