function_decl ftest1:
bind_expr :
return_expr :
modify_expr :
result_decl :
integer_type :
type_decl int:
integer_cst 32:
integer_cst -2147483648:
integer_cst 2147483647:
integer_cst 32:
integer_cst 1:
block :
function_decl ftest2:
bind_expr : ptr0,
return_expr : ptr0,
modify_expr : ptr0,
result_decl : ptr0,
integer_type : ptr0,
type_decl int: ptr0,
integer_cst 32: ptr0,
integer_cst -2147483648: ptr0,
integer_cst 2147483647: ptr0,
integer_cst 32: ptr0,
integer_cst 1: ptr0,
block : ptr0,
function_decl ftest3:
bind_expr : ptr0,
statement_list : ptr0,
block : ptr0,
function_decl func1:
bind_expr : ptr1,
call_expr : ptr1,
parm_decl ptr1: ptr1,
pointer_type : ptr1,
type_decl FuncPtr1: ptr1,
function_type : ptr1,
void_type : ptr1,
type_decl void: ptr1,
tree_list : ptr1,
void_type : ptr1,
type_decl void: ptr1,
integer_cst 64: ptr1,
test24.c: In function 'func1':
test24.c:33:5: warning: Using parameter 'ptr1' without checking for null pointer
ptr1();
^
block : ptr1,
function_decl func2:
bind_expr : ptr1,
statement_list : ptr1,
decl_expr : ptr1,
var_decl fptr2: ptr1,
call_expr : ptr1,
var_decl fptr2: ptr1,
parm_decl ptr1: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
integer_cst 64: ptr1,
var_decl fptr2: ptr1,
integer_cst 64: ptr1,
pointer_type : ptr1,
type_decl FuncPtr2: ptr1,
function_type : ptr1,
void_type : ptr1,
type_decl void: ptr1,
tree_list : ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
tree_list : ptr1,
void_type : ptr1,
type_decl void: ptr1,
block : ptr1,
var_decl fptr2: ptr1,
function_decl func3:
bind_expr : ptr1,
statement_list : ptr1,
decl_expr : ptr1,
var_decl data: ptr1,
call_expr : ptr1,
component_ref : ptr1,
indirect_ref : ptr1,
var_decl data: ptr1,
field_decl fptr1: ptr1,
integer_cst 64: ptr1,
parm_decl ptr1: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
integer_cst 64: ptr1,
var_decl data: ptr1,
integer_cst 64: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
block : ptr1,
var_decl data: ptr1,
function_decl func4:
bind_expr : ptr1,
statement_list : ptr1,
decl_expr : ptr1,
var_decl ptr2: ptr1,
call_expr : ptr1,
component_ref : ptr1,
test24.c: In function 'func4':
test24.c:51:9: warning: Using parameter 'ptr1' without checking for null pointer
ptr1->fptr1(ptr2);
^
indirect_ref : ptr1,
parm_decl ptr1: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
integer_cst 64: ptr1,
field_decl fptr1: ptr1,
integer_cst 64: ptr1,
var_decl ptr2: ptr1,
var_decl ptr2: ptr1,
integer_cst 64: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
block : ptr1,
var_decl ptr2: ptr1,
function_decl func5:
bind_expr : ptr1,
statement_list : ptr1,
decl_expr : ptr1,
var_decl data: ptr1,
call_expr : ptr1,
array_ref : ptr1,
integer_cst 0: ptr1,
integer_cst 8: ptr1,
component_ref : ptr1,
indirect_ref : ptr1,
var_decl data: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
integer_cst 1: ptr1,
parm_decl ptr1: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
integer_cst 64: ptr1,
var_decl data: ptr1,
integer_cst 64: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
block : ptr1,
var_decl data: ptr1,
function_decl func6:
bind_expr : ptr1,
statement_list : ptr1,
decl_expr : ptr1,
var_decl data: ptr1,
call_expr : ptr1,
indirect_ref : ptr1,
pointer_plus_expr : ptr1,
test24.c: In function 'func6':
test24.c:63:11: warning: Using parameter 'ptr1' without checking for null pointer
(*ptr1[1])(data);
^
parm_decl ptr1: ptr1,
pointer_type : ptr1,
pointer_type : ptr1,
type_decl FuncPtr2: ptr1,
function_type : ptr1,
void_type : ptr1,
type_decl void: ptr1,
tree_list : ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
tree_list : ptr1,
void_type : ptr1,
type_decl void: ptr1,
integer_cst 64: ptr1,
integer_cst 8: ptr1,
var_decl data: ptr1,
var_decl data: ptr1,
integer_cst 64: ptr1,
pointer_type : ptr1,
record_type : ptr1,
identifier_node 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 fptr1: ptr1,
integer_cst 64: ptr1,
field_decl fptr2: ptr1,
integer_cst 192: ptr1,
block : ptr1,
var_decl data: ptr1,
function_decl test1:
bind_expr : w1, w2,
statement_list : w1, w2,
block : w1, w2,
function_decl func7:
bind_expr : w1, w2,
statement_list : w1, w2,
decl_expr : w1, w2,
var_decl fptr: w1, w2,
decl_expr : w1, w2,
var_decl i: w1, w2,
integer_cst 32: w1, w2,
integer_type : w1, w2,
type_decl int: w1, w2,
integer_cst 32: w1, w2,
integer_cst -2147483648: w1, w2,
integer_cst 2147483647: w1, w2,
modify_expr : w1, w2,
var_decl i: w1, w2,
integer_cst 0: w1, w2,
goto_expr : w1, w2,
label_expr : w1, w2,
label_decl : w1, w2,
cond_expr : w1, w2,
ne_expr : w1, w2,
call_expr : w1, w2,
array_ref : w1, w2,
integer_cst 0: w1, w2,
integer_cst 8: w1, w2,
var_decl fptr: w1, w2,
var_decl i: w1, w2,
parm_decl w1: w1, w2,
pointer_type : w1, w2,
integer_type : w1, w2,
type_decl char: w1, w2,
integer_cst 8: w1, w2,
integer_cst -128: w1, w2,
integer_cst 127: w1, w2,
integer_cst 64: w1, w2,
parm_decl w2: w1, w2,
pointer_type : w1, w2,
integer_type : w1, w2,
type_decl char: w1, w2,
integer_cst 8: w1, w2,
integer_cst -128: w1, w2,
integer_cst 127: w1, w2,
integer_cst 64: w1, w2,
integer_cst 0: w1, w2,
goto_expr : w1, w2,
postincrement_expr : w1, w2,
var_decl i: w1, w2,
integer_cst 1: w1, w2,
label_expr : w1, w2,
label_decl : w1, w2,
cond_expr : w1, w2,
le_expr : w1, w2,
var_decl i: w1, w2,
integer_cst 9: w1, w2,
goto_expr : w1, w2,
goto_expr : w1, w2,
label_expr : w1, w2,
label_decl : w1, w2,
var_decl fptr: w1, w2,
integer_cst 64: w1, w2,
constructor : w1, w2,
array_type : w1, w2,
pointer_type : w1, w2,
function_type : w1, w2,
integer_type : w1, w2,
type_decl int: w1, w2,
integer_cst 32: w1, w2,
integer_cst -2147483648: w1, w2,
integer_cst 2147483647: w1, w2,
tree_list : w1, w2,
pointer_type : w1, w2,
integer_type : w1, w2,
type_decl char: w1, w2,
integer_cst 8: w1, w2,
integer_cst -128: w1, w2,
integer_cst 127: w1, w2,
tree_list : w1, w2,
pointer_type : w1, w2,
integer_type : w1, w2,
type_decl char: w1, w2,
integer_cst 8: w1, w2,
integer_cst -128: w1, w2,
integer_cst 127: w1, w2,
tree_list : w1, w2,
void_type : w1, w2,
type_decl void: w1, w2,
integer_type : w1, w2,
integer_cst 64: w1, w2,
integer_cst 0: w1, w2,
integer_cst 0: w1, w2,
integer_cst 0: w1, w2,
addr_expr : w1, w2,
function_decl test1: w1, w2,
array_type : w1, w2,
pointer_type : w1, w2,
function_type : w1, w2,
integer_type : w1, w2,
type_decl int: w1, w2,
integer_cst 32: w1, w2,
integer_cst -2147483648: w1, w2,
integer_cst 2147483647: w1, w2,
tree_list : w1, w2,
pointer_type : w1, w2,
integer_type : w1, w2,
type_decl char: w1, w2,
integer_cst 8: w1, w2,
integer_cst -128: w1, w2,
integer_cst 127: w1, w2,
tree_list : w1, w2,
pointer_type : w1, w2,
integer_type : w1, w2,
type_decl char: w1, w2,
integer_cst 8: w1, w2,
integer_cst -128: w1, w2,
integer_cst 127: w1, w2,
tree_list : w1, w2,
void_type : w1, w2,
type_decl void: w1, w2,
integer_type : w1, w2,
integer_cst 64: w1, w2,
integer_cst 0: w1, w2,
integer_cst 0: w1, w2,
block : w1, w2,
var_decl fptr: w1, w2,
var_decl i: w1, w2,
function_decl func8:
bind_expr : fptr,
call_expr : fptr,
indirect_ref : fptr,
pointer_plus_expr : fptr,
test24.c: In function 'func8':
test24.c:86:9: warning: Using parameter 'fptr' without checking for null pointer
fptr[1]("", "");
^
parm_decl fptr: fptr,
pointer_type : fptr,
pointer_type : fptr,
function_type : fptr,
integer_type : fptr,
type_decl int: fptr,
integer_cst 32: fptr,
integer_cst -2147483648: fptr,
integer_cst 2147483647: fptr,
tree_list : fptr,
pointer_type : fptr,
integer_type : fptr,
type_decl char: fptr,
integer_cst 8: fptr,
integer_cst -128: fptr,
integer_cst 127: fptr,
tree_list : fptr,
pointer_type : fptr,
integer_type : fptr,
type_decl char: fptr,
integer_cst 8: fptr,
integer_cst -128: fptr,
integer_cst 127: fptr,
tree_list : fptr,
void_type : fptr,
type_decl void: fptr,
integer_cst 64: fptr,
integer_cst 8: fptr,
addr_expr : fptr,
string_cst : fptr,
addr_expr : fptr,
string_cst : fptr,
block : fptr,