diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 10 | ||||
-rw-r--r-- | test/test5-01.txt | 190 | ||||
-rw-r--r-- | test/test5-02.txt | 2 | ||||
-rw-r--r-- | test/test5-03.txt | 4 | ||||
-rw-r--r-- | test/test5.c | 12 |
5 files changed, 215 insertions, 3 deletions
diff --git a/test/Makefile b/test/Makefile index a0aa921..65bdd9f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,13 +1,13 @@ -.PHONY: test1 test2 test3 test4 crashtest1 crashtest2 all crashes clean +.PHONY: test1 test2 test3 test4 test5 crashtest1 crashtest2 all crashes clean .NOTPARALLEL: all allcrash CC := gcc-5 CXX := g++-5 PLUGIN = ../build/src/.libs/astdumper.so -CMD = ${CXX} -c -fplugin=${PLUGIN} -fplugin-arg-astdumper-command=${1} ${2} -o a.out 2>${3} +CMD = LANG=C ${CXX} -c -fplugin=${PLUGIN} -fplugin-arg-astdumper-command=${1} ${2} -o a.out 2>${3} -all: test1 test2 test3 test4 clean +all: test1 test2 test3 test4 test5 clean crashes: crashtest1 crashtest2 clean clean: @@ -27,6 +27,10 @@ test3: test4: $(call CMD,dump,test4.c,test4-01.txt) $(call CMD,findargs,test4.c,test4-02.txt) +test5: + $(call CMD,dump,test5.c,test5-01.txt) + $(call CMD,findargs,test5.c,test5-02.txt) + $(call CMD,detectnullpointers,test5.c,test5-03.txt) crashtest1: $(call CMD,dump,crashtest1.h,crashtest1-01.txt) diff --git a/test/test5-01.txt b/test/test5-01.txt new file mode 100644 index 0000000..ebeb2ab --- /dev/null +++ b/test/test5-01.txt @@ -0,0 +1,190 @@ +function_decl func1 test5.c 4: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 + integer_type - value + - 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 test5.c 4:33 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl a test5.c 4:16 - 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 + - isUsed: 1 + parm_decl b test5.c 4:24 - 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 test5.c 4:32 - 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 8 - parm size + cleanup_point_expr test5.c 6:13 - code + expr_stmt - operand + convert_expr - expresssion + modify_expr - operand + indirect_ref - operand + - isUsed: 1 + parm_decl b test5.c 4:24 - 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 100 - operand +function_decl func2 test5.c 9: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 + integer_type - value + - 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 test5.c 9:33 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void <built-in> 0:0 - type name + - isAutogenerated: 1 + parm_decl a test5.c 9:16 - 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 + - isUsed: 1 + parm_decl b test5.c 9:24 - 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 test5.c 9:32 - 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 8 - parm size + cleanup_point_expr test5.c 11:19 - code + expr_stmt - operand + convert_expr - expresssion + modify_expr - operand + indirect_ref - operand + pointer_plus_expr test5.c 11:9 - operand + - isUsed: 1 + parm_decl b test5.c 9:24 - 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 4 - operand + integer_cst 200 - operand diff --git a/test/test5-02.txt b/test/test5-02.txt new file mode 100644 index 0000000..e9557cf --- /dev/null +++ b/test/test5-02.txt @@ -0,0 +1,2 @@ +func1: pointer_type b, +func2: pointer_type b, diff --git a/test/test5-03.txt b/test/test5-03.txt new file mode 100644 index 0000000..506dead --- /dev/null +++ b/test/test5-03.txt @@ -0,0 +1,4 @@ +test5.c: In function 'void func1(int, int*, char)': +test5.c:6:13: warning: Using variable without check for NULL + *b = 100; + ^ diff --git a/test/test5.c b/test/test5.c new file mode 100644 index 0000000..0312c52 --- /dev/null +++ b/test/test5.c @@ -0,0 +1,12 @@ +void func1(int a, int *b, char c); +void func2(int a, int *b, char c); + +void func1(int a, int *b, char c) +{ + *b = 100; +} + +void func2(int a, int *b, char c) +{ + *(1 + b) = 200; +} |