Precise Interprocedural Analysis in the Presence of Pointers to the Stack

被引:0
作者
Sotin, Pascal [1 ]
Jeannet, Bertrand [1 ]
机构
[1] INRIA, Paris, France
来源
PROGRAMMING LANGUAGES AND SYSTEMS | 2011年 / 6602卷
关键词
VERIFICATION;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In a language with procedures calls and pointers as parameters, an instruction can modify memory locations anywhere in the call-stack. The presence of such side effects breaks most generic interprocedural analysis methods, which assume that only the top of the stack may be modified. We present a method that addresses this issue, based on the definition of an equivalent local semantics in which writing through pointers has a local effect on the stack. Our second contribution in this context is an adequate representation of summary functions that models the effect of a procedure, not only on the values of its scalar and pointer variables, but also on the values contained in pointed memory locations. Our implementation in the interprocedural analyser PInterproc results in a verification tool that infers relational properties on the value of Boolean, numerical and pointer variables.
引用
收藏
页码:459 / 479
页数:21
相关论文
共 31 条
[1]  
[Anonymous], 1994, Program analysis and specialization for the C programming language
[2]  
Bourdoncle F., 1990, LNCS, V456
[3]  
Bravenboer Martin, 2009, OBJECT ORIENTED PROG
[4]  
Chase D.R., 1990, PROG LANG DESIGN IMP
[5]  
Chatterjee R., 1999, PRINCIPLES PROG LANG
[6]  
Cousot P., 1977, PRINCIPLES PROG LANG
[7]  
Cousot P., 1977, IFIP C FOR DESCR PRO
[8]  
Cousot P., 2009, FORMAL METHODS SYSTE, V35
[9]  
Delmas D, 2009, LECT NOTES COMPUT SC, V5825, P53
[10]  
Filliâtre JC, 2004, LECT NOTES COMPUT SC, V3308, P15