summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-15 02:30:05 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-15 02:30:05 +0300
commit49a72e0dec3fee4644b2dfa362e08e899def1082 (patch)
treeff08d7863d5b64a2bca8c77ca027a6145a09a88d /test
parentf2f31ff386a2823a6b71634ab5d6b414fbd9f9d3 (diff)
downloadparanucker-49a72e0dec3fee4644b2dfa362e08e899def1082.tar.gz
paranucker-49a72e0dec3fee4644b2dfa362e08e899def1082.tar.bz2
paranucker-49a72e0dec3fee4644b2dfa362e08e899def1082.tar.xz
paranucker-49a72e0dec3fee4644b2dfa362e08e899def1082.zip
Add test7
Diffstat (limited to 'test')
-rw-r--r--test/Makefile10
-rw-r--r--test/test7-01.txt304
-rw-r--r--test/test7-02.txt211
-rw-r--r--test/test7-03.txt4
-rw-r--r--test/test7-04.txt4
-rw-r--r--test/test7-05.txt44
-rw-r--r--test/test7.cpp23
7 files changed, 598 insertions, 2 deletions
diff --git a/test/Makefile b/test/Makefile
index 237acb5..bcf1c24 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,4 +1,4 @@
-.PHONY: test1 test2 test3 test4 test5 test6 crashtest1 crashtest2 all crashes clean
+.PHONY: test1 test2 test3 test4 test5 test6 test7 crashtest1 crashtest2 all crashes clean
.NOTPARALLEL: all allcrash
CC := gcc-5
@@ -7,7 +7,7 @@ CXX := g++-5
PLUGIN = ../build/src/.libs/astdumper.so
CMD = LANG=C ${CXX} -c -fplugin=${PLUGIN} -fplugin-arg-astdumper-command=${1} ${2} -o a.out 2>${3}
-all: test1 test2 test3 test4 test5 test6 clean
+all: test1 test2 test3 test4 test5 test6 test7 clean
crashes: crashtest1 crashtest2 crashtest3 crashtest4 clean
clean:
@@ -39,6 +39,12 @@ test6:
$(call CMD,dumpunsupported,test6.c,test6-02.txt)
$(call CMD,detectnullpointers,test6.c,test6-03.txt)
$(call CMD,dumpnullpointers,test6.c,test6-04.txt)
+test7:
+ $(call CMD,dump,test7.cpp,test7-01.txt)
+ $(call CMD,smalldump,test7.cpp,test7-02.txt)
+ $(call CMD,findargs,test7.cpp,test7-03.txt)
+ $(call CMD,detectnullpointers,test7.cpp,test7-04.txt)
+ $(call CMD,dumpnullpointers,test7.cpp,test7-05.txt)
crashtest1:
$(call CMD,dump,crashtest1.h,crashtest1-01.txt)
diff --git a/test/test7-01.txt b/test/test7-01.txt
new file mode 100644
index 0000000..868c093
--- /dev/null
+++ b/test/test7-01.txt
@@ -0,0 +1,304 @@
+function_decl func1 test7.cpp 4: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 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.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 test7.cpp 5:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test7.cpp 4:16 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ statement_list - code
+function_decl func2 test7.cpp 8: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 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ integer_type - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test7.cpp 9:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test7.cpp 8:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl aptr test7.cpp 8:21 - argument
+ pointer_type - decl type
+ integer_type - nested 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 64 - parm size
+ cleanup_point_expr test7.cpp 10:18 - code
+ expr_stmt - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl aptr test7.cpp 8:21 - operand
+ pointer_type - decl type
+ integer_type - nested 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 64 - parm size
+ integer_cst 0 - operand
+function_decl func3 test7.cpp 13: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 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ integer_type - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test7.cpp 14:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl this test7.cpp 13:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ - isUsed: 1
+ parm_decl aptr test7.cpp 13:21 - argument
+ pointer_type - decl type
+ integer_type - nested 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 64 - parm size
+ if_stmt - code
+ ne_expr - condition
+ - isUsed: 1
+ parm_decl aptr test7.cpp 13:21 - operand
+ pointer_type - decl type
+ integer_type - nested 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 64 - parm size
+ integer_cst 0 - operand
+ cleanup_point_expr test7.cpp 16:22 - then
+ expr_stmt - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ indirect_ref - operand
+ - isUsed: 1
+ parm_decl aptr test7.cpp 13:21 - operand
+ pointer_type - decl type
+ integer_type - nested 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 64 - parm size
+ integer_cst 0 - operand
+function_decl func4 test7.cpp 19: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 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - arg types
+ pointer_type - value
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ tree_list - chain
+ pointer_type - value
+ integer_type - nested type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test7.cpp 20:5 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ - isUsed: 1
+ parm_decl this test7.cpp 19:25 - argument
+ - isAutogenerated: 1
+ pointer_type - decl type
+ record_type - nested type
+ type_decl Object1 test7.cpp 1:7 - type name
+ - isAutogenerated: 1
+ field_decl k test7.cpp 3:9 - field
+ - signed
+ integer_cst 32 - decl size
+ type_decl Object1 test7.cpp 2:1 - field
+ - isAutogenerated: 1
+ integer_cst 64 - parm size
+ parm_decl aptr test7.cpp 19:21 - argument
+ pointer_type - decl type
+ integer_type - nested 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 64 - parm size
+ cleanup_point_expr test7.cpp 21:14 - code
+ expr_stmt - operand
+ convert_expr - expresssion
+ modify_expr - operand
+ component_ref - operand
+ integer_cst 3 - operand
diff --git a/test/test7-02.txt b/test/test7-02.txt
new file mode 100644
index 0000000..61de238
--- /dev/null
+++ b/test/test7-02.txt
@@ -0,0 +1,211 @@
+0 function_decl test7.cpp
+1 method_type
+2 void_type
+3 type_decl <built-in>
+2 record_type
+3 type_decl test7.cpp
+3 field_decl test7.cpp
+4 integer_cst
+3 type_decl test7.cpp
+2 tree_list
+3 pointer_type
+4 record_type
+5 type_decl test7.cpp
+5 field_decl test7.cpp
+6 integer_cst
+5 type_decl test7.cpp
+3 tree_list
+4 void_type
+5 type_decl <built-in>
+1 result_decl test7.cpp
+2 void_type
+3 type_decl <built-in>
+1 parm_decl test7.cpp
+2 pointer_type
+3 record_type
+4 type_decl test7.cpp
+4 field_decl test7.cpp
+5 integer_cst
+4 type_decl test7.cpp
+2 integer_cst
+1 statement_list
+0 function_decl test7.cpp
+1 method_type
+2 void_type
+3 type_decl <built-in>
+2 record_type
+3 type_decl test7.cpp
+3 field_decl test7.cpp
+4 integer_cst
+3 type_decl test7.cpp
+2 tree_list
+3 pointer_type
+4 record_type
+5 type_decl test7.cpp
+5 field_decl test7.cpp
+6 integer_cst
+5 type_decl test7.cpp
+3 tree_list
+4 pointer_type
+5 integer_type
+6 type_decl <built-in>
+6 integer_cst
+6 integer_cst
+6 integer_cst
+4 tree_list
+5 void_type
+6 type_decl <built-in>
+1 result_decl test7.cpp
+2 void_type
+3 type_decl <built-in>
+1 parm_decl test7.cpp
+2 pointer_type
+3 record_type
+4 type_decl test7.cpp
+4 field_decl test7.cpp
+5 integer_cst
+4 type_decl test7.cpp
+2 integer_cst
+1 parm_decl test7.cpp
+2 pointer_type
+3 integer_type
+4 type_decl <built-in>
+4 integer_cst
+4 integer_cst
+4 integer_cst
+2 integer_cst
+1 cleanup_point_expr test7.cpp
+2 expr_stmt
+3 convert_expr
+4 modify_expr
+5 indirect_ref
+6 parm_decl test7.cpp
+7 pointer_type
+8 integer_type
+9 type_decl <built-in>
+9 integer_cst
+9 integer_cst
+9 integer_cst
+7 integer_cst
+5 integer_cst
+0 function_decl test7.cpp
+1 method_type
+2 void_type
+3 type_decl <built-in>
+2 record_type
+3 type_decl test7.cpp
+3 field_decl test7.cpp
+4 integer_cst
+3 type_decl test7.cpp
+2 tree_list
+3 pointer_type
+4 record_type
+5 type_decl test7.cpp
+5 field_decl test7.cpp
+6 integer_cst
+5 type_decl test7.cpp
+3 tree_list
+4 pointer_type
+5 integer_type
+6 type_decl <built-in>
+6 integer_cst
+6 integer_cst
+6 integer_cst
+4 tree_list
+5 void_type
+6 type_decl <built-in>
+1 result_decl test7.cpp
+2 void_type
+3 type_decl <built-in>
+1 parm_decl test7.cpp
+2 pointer_type
+3 record_type
+4 type_decl test7.cpp
+4 field_decl test7.cpp
+5 integer_cst
+4 type_decl test7.cpp
+2 integer_cst
+1 parm_decl test7.cpp
+2 pointer_type
+3 integer_type
+4 type_decl <built-in>
+4 integer_cst
+4 integer_cst
+4 integer_cst
+2 integer_cst
+1 if_stmt
+2 ne_expr
+3 parm_decl test7.cpp
+4 pointer_type
+5 integer_type
+6 type_decl <built-in>
+6 integer_cst
+6 integer_cst
+6 integer_cst
+4 integer_cst
+3 integer_cst
+2 cleanup_point_expr test7.cpp
+3 expr_stmt
+4 convert_expr
+5 modify_expr
+6 indirect_ref
+7 parm_decl test7.cpp
+8 pointer_type
+9 integer_type
+10 type_decl <built-in>
+10 integer_cst
+10 integer_cst
+10 integer_cst
+8 integer_cst
+6 integer_cst
+0 function_decl test7.cpp
+1 method_type
+2 void_type
+3 type_decl <built-in>
+2 record_type
+3 type_decl test7.cpp
+3 field_decl test7.cpp
+4 integer_cst
+3 type_decl test7.cpp
+2 tree_list
+3 pointer_type
+4 record_type
+5 type_decl test7.cpp
+5 field_decl test7.cpp
+6 integer_cst
+5 type_decl test7.cpp
+3 tree_list
+4 pointer_type
+5 integer_type
+6 type_decl <built-in>
+6 integer_cst
+6 integer_cst
+6 integer_cst
+4 tree_list
+5 void_type
+6 type_decl <built-in>
+1 result_decl test7.cpp
+2 void_type
+3 type_decl <built-in>
+1 parm_decl test7.cpp
+2 pointer_type
+3 record_type
+4 type_decl test7.cpp
+4 field_decl test7.cpp
+5 integer_cst
+4 type_decl test7.cpp
+2 integer_cst
+1 parm_decl test7.cpp
+2 pointer_type
+3 integer_type
+4 type_decl <built-in>
+4 integer_cst
+4 integer_cst
+4 integer_cst
+2 integer_cst
+1 cleanup_point_expr test7.cpp
+2 expr_stmt
+3 convert_expr
+4 modify_expr
+5 component_ref
+5 integer_cst
diff --git a/test/test7-03.txt b/test/test7-03.txt
new file mode 100644
index 0000000..ef31826
--- /dev/null
+++ b/test/test7-03.txt
@@ -0,0 +1,4 @@
+func1: pointer_type this,
+func2: pointer_type this, pointer_type aptr,
+func3: pointer_type this, pointer_type aptr,
+func4: pointer_type this, pointer_type aptr,
diff --git a/test/test7-04.txt b/test/test7-04.txt
new file mode 100644
index 0000000..31b5a8c
--- /dev/null
+++ b/test/test7-04.txt
@@ -0,0 +1,4 @@
+test7.cpp: In member function 'void Object1::func2(int*)':
+test7.cpp:10:18: warning: Using variable without check for NULL
+ *aptr = 0;
+ ^
diff --git a/test/test7-05.txt b/test/test7-05.txt
new file mode 100644
index 0000000..3e9b9b6
--- /dev/null
+++ b/test/test7-05.txt
@@ -0,0 +1,44 @@
+function_decl func1:
+statement_list : this,
+function_decl func2:
+cleanup_point_expr : aptr, this,
+expr_stmt : aptr, this,
+convert_expr : aptr, this,
+modify_expr : aptr, this,
+test7.cpp: In member function 'void Object1::func2(int*)':
+test7.cpp:10:18: warning: Using variable without check for NULL
+ *aptr = 0;
+ ^
+indirect_ref : aptr, this,
+parm_decl aptr: aptr, this,
+pointer_type : aptr, this,
+integer_type : aptr, this,
+type_decl int: aptr, this,
+integer_cst 32: aptr, this,
+integer_cst -2147483648: aptr, this,
+integer_cst 2147483647: aptr, this,
+integer_cst 64: aptr, this,
+integer_cst 0: aptr, this,
+function_decl func3:
+if_stmt : aptr, this,
+cleanup_point_expr : this,
+expr_stmt : this,
+convert_expr : this,
+modify_expr : this,
+indirect_ref : this,
+parm_decl aptr: this,
+pointer_type : this,
+integer_type : this,
+type_decl int: this,
+integer_cst 32: this,
+integer_cst -2147483648: this,
+integer_cst 2147483647: this,
+integer_cst 64: this,
+integer_cst 0: this,
+function_decl func4:
+cleanup_point_expr : aptr, this,
+expr_stmt : aptr, this,
+convert_expr : aptr, this,
+modify_expr : aptr, this,
+component_ref : aptr, this,
+integer_cst 3: aptr, this,
diff --git a/test/test7.cpp b/test/test7.cpp
new file mode 100644
index 0000000..ad91c4d
--- /dev/null
+++ b/test/test7.cpp
@@ -0,0 +1,23 @@
+class Object1
+{
+ int k;
+ void func1()
+ {
+ }
+
+ void func2(int *aptr)
+ {
+ *aptr = 0;
+ }
+
+ void func3(int *aptr)
+ {
+ if (aptr)
+ *aptr = 0;
+ }
+
+ void func4(int *aptr)
+ {
+ k = 3;
+ }
+};