[analyzer][CallAndMessage][NFC] Split up checkPreCall

Authored by Szelethus on Apr 5 2020, 10:53 AM.


[analyzer][CallAndMessage][NFC] Split up checkPreCall

The patch aims to use CallEvents interface in a more principled manner, and also
to highlight what this checker really does. It in fact checks for 5 different
kinds of errors (from checkPreCall, that is):

  • Invalid function pointer related errors
  • Call of methods from an invalid C++ this object
  • Function calls with incorrect amount of parameters
  • Invalid arguments for operator delete
  • Pass of uninitialized values to pass-by-value parameters

In a previous patch I complained that this checker is responsible for emitting
a lot of different diagnostics all under core.CallAndMessage's name, and this
patch shows where we could start to assign different diagnostics to different

Differential Revision: https://reviews.llvm.org/D77846