how to check custom malloc with the clang checker?

Hi all,

I’m doing embedded programming and want to use clang to do some static analyze with the code. One problem I’m facing is we use custom memory allocater in the project, namely “rt_malloc” etc. Is there any way to make clang check such calls just like normal malloc without writing my own plugin?

I’ve checked cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp and I know I could substitute “malloc” with “rt_malloc” and compile that file as so libs. But I think it’s an overkill. Is there anyway to tell clang that “rt_malloc” is just an alias of “malloc”?

Currently, there is no such supported mechanism. This is something that would be a great addition to the checker though.

The way to do this, would be by adding annotations to custom allocators/deallocators. This effort has been started. There is an experimental alpha.unix.MallocWithAnnotations checker that relies on ownership attributes. However, the checker is not production ready and it will error on the side of false positives. Specifically, when any function that takes a pointer is called, it will assume that it cannot free the pointer unless annotated. This approach would require a ton of annotations on user code and we need to change that behavior.