================
@@ -0,0 +1,54 @@
+//===--- OpaqueSTLFunctionsModeling.cpp 
-----------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Models STL functions whose best accurate model is to invalidate their
+// arguments. Only functions where this simple approach is sufficient and won't
+// interfere with the modeling of other checkers should be put here.
+//
+//===----------------------------------------------------------------------===//
+
+#include "clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h"
+#include "clang/StaticAnalyzer/Core/Checker.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
+
+using namespace clang;
+using namespace ento;
+
+namespace {
+class OpaqueSTLFunctionsModeling : public Checker<eval::Call> {
+public:
+  bool evalCall(const CallEvent &Call, CheckerContext &C) const;
+
+private:
+  const CallDescriptionSet ModeledFunctions{
+      {CDM::SimpleFunc, {"std", "sort"}},
+      {CDM::SimpleFunc, {"std", "stable_sort"}},
+      {CDM::SimpleFunc, {"std", "inplace_merge"}}};
+};
+} // anonymous namespace
----------------
steakhal wrote:

```suggestion
} // namespace
```

https://github.com/llvm/llvm-project/pull/178910
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to