This commit adds a static analysis checker to verify the correct usage of the MPI API in C
and C++. This version updates the reverted r271981 to fix a memory corruption found by the
ASan bots.
Three path-sensitive checks are included:
- Double nonblocking: Double request usage by nonblocking calls without intermediate wait
- Missing wait: Nonblocking call without matching wait.
- Unmatched wait: Waiting for a request that was never used by a nonblocking call
Examples of how to use the checker can be found at https://github.com/0ax1/MPI-Checker
A patch by Alexander Droste!
Reviewers: zaks.anna, dcoughlin
Differential Revision: http://reviews.llvm.org/D21081
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272529 91177308-0d34-0410-b5e6-96231b3b80d8
Even with the fix in r271981, ASan is finding a stack use after return.
This reverts commits r271977 and r271981.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271984 91177308-0d34-0410-b5e6-96231b3b80d8
Second try at reapplying
"[analyzer] Add checker for correct usage of MPI API in C and C++."
Special thanks to Dan Liew for helping test the fix for the template
specialization compiler error with gcc.
The original patch is by Alexander Droste!
Differential Revision: http://reviews.llvm.org/D12761
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271977 91177308-0d34-0410-b5e6-96231b3b80d8
This reverts commit r271907. It broke a bunch of bots with compile errors
about specializations in different namespaces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271909 91177308-0d34-0410-b5e6-96231b3b80d8
This commit adds a static analysis checker to check for the correct usage of the
MPI API in C and C++.
3 path-sensitive checks are included:
- Double nonblocking: Double request usage by nonblocking calls
without intermediate wait.
- Missing wait: Nonblocking call without matching wait.
- Unmatched wait: Waiting for a request that was never used by a
nonblocking call.
Examples of how to use the checker can be found
at https://github.com/0ax1/MPI-Checker
Reviewers: zaks.anna
A patch by Alexander Droste!
Differential Revision: http://reviews.llvm.org/D12761
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271907 91177308-0d34-0410-b5e6-96231b3b80d8