summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Makefile11
-rw-r--r--test/test1-01.txt16
-rw-r--r--test/test2-01.txt55
-rw-r--r--test/test2-02.txt1
-rw-r--r--test/test2.c4
-rw-r--r--test/test3-01.txt99
-rw-r--r--test/test3-02.txt1
-rw-r--r--test/test3.c4
-rw-r--r--test/test4-01.txt302
-rw-r--r--test/test4-02.txt4
-rw-r--r--test/test4.c23
11 files changed, 510 insertions, 10 deletions
diff --git a/test/Makefile b/test/Makefile
index 0acb4e2..40a48fc 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,4 +1,4 @@
-.PHONY: test1 test2 crashtest1 crashtest2 all crashes clean
+.PHONY: test1 test2 test3 test4 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 = ${CXX} -fplugin=${PLUGIN} -fplugin-arg-astdumper-command=${1} ${2} -o a.out 2>${3}
-all: test1 test2 clean
+all: test1 test2 test3 test4 clean
crashes: crashtest1 crashtest2 clean
clean:
@@ -20,6 +20,13 @@ test1:
$(call CMD,dumpunsupported,test1.c,test1-04.txt)
test2:
$(call CMD,dump,test2.c,test2-01.txt)
+ $(call CMD,findargs,test2.c,test2-02.txt)
+test3:
+ $(call CMD,dump,test3.c,test3-01.txt)
+ $(call CMD,findargs,test3.c,test3-02.txt)
+test4:
+ $(call CMD,dump,test4.c,test4-01.txt)
+ $(call CMD,findargs,test4.c,test4-02.txt)
crashtest1:
$(call CMD,dump,crashtest1.h,crashtest1-01.txt)
diff --git a/test/test1-01.txt b/test/test1-01.txt
index 23a429a..f61f596 100644
--- a/test/test1-01.txt
+++ b/test/test1-01.txt
@@ -10,7 +10,7 @@ function_decl func3 test1.c 7:6
identifier_node nonnull - purpose
tree_list - value
integer_cst 1 - value
- tree_list - value
+ tree_list - chain
integer_cst 2 - value
tree_list - arg types
pointer_type - value
@@ -22,7 +22,7 @@ function_decl func3 test1.c 7:6
integer_cst 32 - type size
integer_cst -2147483648 - min value
integer_cst 2147483647 - max value
- tree_list - arg types
+ tree_list - chain
pointer_type - value
integer_type - nested type
- precisionBits: 8
@@ -33,7 +33,7 @@ function_decl func3 test1.c 7:6
integer_cst 8 - type size
integer_cst -128 - min value
integer_cst 127 - max value
- tree_list - arg types
+ tree_list - chain
void_type - value
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
@@ -266,7 +266,7 @@ function_decl fun test1.c 21:6
integer_cst 32 - type size
integer_cst -2147483648 - min value
integer_cst 2147483647 - max value
- tree_list - arg types
+ tree_list - chain
integer_type - value
- precisionBits: 32
- signed
@@ -275,7 +275,7 @@ function_decl fun test1.c 21:6
integer_cst 32 - type size
integer_cst -2147483648 - min value
integer_cst 2147483647 - max value
- tree_list - arg types
+ tree_list - chain
void_type - value
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
@@ -406,7 +406,7 @@ function_decl fun1 test1.c 29:5
integer_cst 32 - type size
integer_cst -2147483648 - min value
integer_cst 2147483647 - max value
- tree_list - arg types
+ tree_list - chain
pointer_type - value
pointer_type - nested type
pointer_type - nested type
@@ -418,7 +418,7 @@ function_decl fun1 test1.c 29:5
integer_cst 32 - type size
integer_cst -2147483648 - min value
integer_cst 2147483647 - max value
- tree_list - arg types
+ tree_list - chain
void_type - value
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
@@ -636,7 +636,7 @@ function_decl fun2 test1.c 38:6
integer_cst 8 - type size
integer_cst -128 - min value
integer_cst 127 - max value
- tree_list - arg types
+ tree_list - chain
void_type - value
type_decl void <built-in> 0:0 - type name
- isAutogenerated: 1
diff --git a/test/test2-01.txt b/test/test2-01.txt
new file mode 100644
index 0000000..022c463
--- /dev/null
+++ b/test/test2-01.txt
@@ -0,0 +1,55 @@
+function_decl main test2.c 1:5
+- isPublic: 1
+ function_type - function type
+ integer_type - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - arg types
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test2.c 1:14 - function result
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ statement_list - code
+ return_expr - statement
+ init_expr - operand
+ result_decl test2.c 1:14 - operand
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ integer_cst 123 - operand
+ return_expr - statement
+ init_expr - operand
+ result_decl test2.c 1:14 - operand
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ integer_cst 0 - operand
diff --git a/test/test2-02.txt b/test/test2-02.txt
new file mode 100644
index 0000000..cf52aff
--- /dev/null
+++ b/test/test2-02.txt
@@ -0,0 +1 @@
+main: \ No newline at end of file
diff --git a/test/test2.c b/test/test2.c
new file mode 100644
index 0000000..33f6936
--- /dev/null
+++ b/test/test2.c
@@ -0,0 +1,4 @@
+int main(void)
+{
+ return 123;
+}
diff --git a/test/test3-01.txt b/test/test3-01.txt
new file mode 100644
index 0000000..e286027
--- /dev/null
+++ b/test/test3-01.txt
@@ -0,0 +1,99 @@
+function_decl main test3.c 1:5
+- isPublic: 1
+ function_type - function type
+ integer_type - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - arg types
+ integer_type - value
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ pointer_type - value
+ pointer_type - nested type
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test3.c 1:31 - function result
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ parm_decl argc test3.c 1:14 - argument
+ integer_type - decl type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - parm size
+ parm_decl argv test3.c 1:27 - argument
+ pointer_type - decl type
+ pointer_type - nested type
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ integer_cst 64 - parm size
+ statement_list - code
+ return_expr - statement
+ init_expr - operand
+ result_decl test3.c 1:31 - operand
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ integer_cst 123 - operand
+ return_expr - statement
+ init_expr - operand
+ result_decl test3.c 1:31 - operand
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ integer_cst 0 - operand
diff --git a/test/test3-02.txt b/test/test3-02.txt
new file mode 100644
index 0000000..0b2a1dd
--- /dev/null
+++ b/test/test3-02.txt
@@ -0,0 +1 @@
+main: integer_type argc, pointer_type argv, \ No newline at end of file
diff --git a/test/test3.c b/test/test3.c
new file mode 100644
index 0000000..20e0636
--- /dev/null
+++ b/test/test3.c
@@ -0,0 +1,4 @@
+int main(int argc, char **argv)
+{
+ return 123;
+}
diff --git a/test/test4-01.txt b/test/test4-01.txt
new file mode 100644
index 0000000..7a133f4
--- /dev/null
+++ b/test/test4-01.txt
@@ -0,0 +1,302 @@
+function_decl main test4.c 1:5
+- isPublic: 1
+ function_type - function type
+ integer_type - function return type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - arg types
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test4.c 1:14 - function result
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ statement_list - code
+ return_expr - statement
+ init_expr - operand
+ result_decl test4.c 1:14 - operand
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ integer_cst 0 - operand
+ return_expr - statement
+ init_expr - operand
+ result_decl test4.c 1:14 - operand
+ - isAutogenerated: 1
+ integer_type - result type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - decl size
+ integer_cst 0 - operand
+function_decl func4_1 test4.c 10:6
+- isPublic: 1
+ function_type - function type
+ void_type - function return type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ tree_list - arg types
+ integer_type - value
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ 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
+ pointer_type - value
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test4.c 10:36 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl a test4.c 10:18 - argument
+ integer_type - decl type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - parm size
+ parm_decl b test4.c 10:26 - 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
+ parm_decl c test4.c 10:35 - argument
+ pointer_type - decl type
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ integer_cst 64 - parm size
+ return_expr - code
+function_decl func4_2 test4.c 15:6
+- isPublic: 1
+ function_type - function type
+ void_type - function return type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ tree_list - attribute
+ identifier_node nonnull - purpose
+ tree_list - value
+ integer_cst 2 - value
+ tree_list - arg types
+ integer_type - value
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ 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
+ pointer_type - value
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test4.c 15:36 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl a test4.c 15:18 - argument
+ integer_type - decl type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - parm size
+ parm_decl b test4.c 15:26 - 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
+ parm_decl c test4.c 15:35 - argument
+ pointer_type - decl type
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ integer_cst 64 - parm size
+ return_expr - code
+function_decl func4_3 test4.c 20:6
+- isPublic: 1
+ function_type - function type
+ void_type - function return type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ tree_list - attribute
+ identifier_node nonnull - purpose
+ tree_list - value
+ integer_cst 2 - value
+ tree_list - chain
+ integer_cst 3 - value
+ tree_list - arg types
+ integer_type - value
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ tree_list - chain
+ 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
+ pointer_type - value
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ tree_list - chain
+ void_type - value
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ result_decl test4.c 20:36 - function result
+ - isAutogenerated: 1
+ void_type - result type
+ type_decl void <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ parm_decl a test4.c 20:18 - argument
+ integer_type - decl type
+ - precisionBits: 32
+ - signed
+ type_decl int <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 32 - type size
+ integer_cst -2147483648 - min value
+ integer_cst 2147483647 - max value
+ integer_cst 32 - parm size
+ parm_decl b test4.c 20:26 - 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
+ parm_decl c test4.c 20:35 - argument
+ pointer_type - decl type
+ integer_type - nested type
+ - precisionBits: 8
+ - isChar: 1
+ - signed
+ type_decl char <built-in> 0:0 - type name
+ - isAutogenerated: 1
+ integer_cst 8 - type size
+ integer_cst -128 - min value
+ integer_cst 127 - max value
+ integer_cst 64 - parm size
+ return_expr - code
diff --git a/test/test4-02.txt b/test/test4-02.txt
new file mode 100644
index 0000000..384a8a1
--- /dev/null
+++ b/test/test4-02.txt
@@ -0,0 +1,4 @@
+main:
+func4_1: integer_type a, pointer_type b, pointer_type c,
+func4_2: integer_type a, pointer_type b nonnull, pointer_type c,
+func4_3: integer_type a, pointer_type b nonnull, pointer_type c nonnull,
diff --git a/test/test4.c b/test/test4.c
new file mode 100644
index 0000000..9f65d24
--- /dev/null
+++ b/test/test4.c
@@ -0,0 +1,23 @@
+int main(void)
+{
+ return 0;
+}
+
+void func4_1(int a, int *b, char *c);
+void func4_2(int a, int *b, char *c) __attribute__((nonnull (2)));
+void func4_3(int a, int *b, char *c) __attribute__((nonnull (2, 3)));
+
+void func4_1(int a, int *b, char *c)
+{
+ return;
+}
+
+void func4_2(int a, int *b, char *c)
+{
+ return;
+}
+
+void func4_3(int a, int *b, char *c)
+{
+ return;
+}