(Cloning the revision for the ASan issue since the old one is closed and can't be re-opened)
This patch adds a static analysis checker to verify 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 on: GitHub https://github.com/0ax1/MPI-Checker