Static analysis of programs in weakly typed languages such as C and C++ is generally not sound because of possible memory errors due to dangling pointer references, uninitialized pointers, and array bounds overflow. We describe a compilation strategy for standard C programs that guarantees that aggressive interprocedural pointer analysis (or less precise ones), a call graph, and type information for a subset of memory, are never invalidated by any possible mem-ory errors. We formalize our approach as a new type system with the necessary run-time checks in operational semantics and prove the correctness of our approach for a subset of C. Our semantics provide the foundation for other sophisticated static analyses to be applied to C programs ...
Aliasing occurs at some program point during execution when two or more names exist for the same loc...
International audienceThis paper reports on the formalization and proof of soundness, using the Coq ...
Accurate alias analysis is a crucial phase of optimizing/parallelizing compilers for languages which...
Static analysis of programs in weakly typed languages such as C and C++ generally is not guaranteed ...
We study the applicability of pointer analysis algorithms (originally aimed at optimizing compilers)...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Two names are aliased if they refer to the same location at a program point during execution. Pointe...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
International audienceThe design and implementation of static analyses that disambiguate pointershas...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
For compile-time pointer aliasing analysis, a program written in the C language can be considered as...
We present a new approach using data flow techniques to solve compile analysis problems for language...
We present initial empirical experiments with combined analysis, a scalable analysis technique that ...
High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize...
Aliasing occurs at some program point during execution when two or more names exist for the same loc...
International audienceThis paper reports on the formalization and proof of soundness, using the Coq ...
Accurate alias analysis is a crucial phase of optimizing/parallelizing compilers for languages which...
Static analysis of programs in weakly typed languages such as C and C++ generally is not guaranteed ...
We study the applicability of pointer analysis algorithms (originally aimed at optimizing compilers)...
Static type determination involves compile time calculation of the type of object a pointer may poin...
Two names are aliased if they refer to the same location at a program point during execution. Pointe...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
International audienceThe design and implementation of static analyses that disambiguate pointershas...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
For compile-time pointer aliasing analysis, a program written in the C language can be considered as...
We present a new approach using data flow techniques to solve compile analysis problems for language...
We present initial empirical experiments with combined analysis, a scalable analysis technique that ...
High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize...
Aliasing occurs at some program point during execution when two or more names exist for the same loc...
International audienceThis paper reports on the formalization and proof of soundness, using the Coq ...
Accurate alias analysis is a crucial phase of optimizing/parallelizing compilers for languages which...