From 96c6ff718be9310ec507ceae5165ffeba6818395 Mon Sep 17 00:00:00 2001 From: Nikos Gorogiannis Date: Fri, 4 May 2018 01:57:45 -0700 Subject: [PATCH] [racerd] add support for folly's synchronized() {} Summary: Folly has a macro SYNCHRONIZED(..) {...} which boils down to the creation/destruction of a LockedPtr object, doing the locking/unlocking. Add support for that. Reviewed By: sblackshear Differential Revision: D7844847 fbshipit-source-id: c7a146d --- infer/src/concurrency/RacerDConfig.ml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/infer/src/concurrency/RacerDConfig.ml b/infer/src/concurrency/RacerDConfig.ml index da7e3c181..ae8b33492 100644 --- a/infer/src/concurrency/RacerDConfig.ml +++ b/infer/src/concurrency/RacerDConfig.ml @@ -72,7 +72,9 @@ module Models = struct in let matcher_lock_constructor = QualifiedCppName.Match.of_fuzzy_qual_names - ["std::lock_guard::lock_guard"; "std::unique_lock::unique_lock"] + [ "std::lock_guard::lock_guard" + ; "std::unique_lock::unique_lock" + ; "folly::LockedPtr::LockedPtr" ] in fun pname actuals -> QualifiedCppName.Match.match_qualifiers matcher_lock (Typ.Procname.get_qualifiers pname) @@ -92,7 +94,8 @@ module Models = struct ; "std::lock_guard::~lock_guard" ; "std::mutex::unlock" ; "std::unique_lock::unlock" - ; "std::unique_lock::~unique_lock" ] + ; "std::unique_lock::~unique_lock" + ; "folly::LockedPtr::~LockedPtr" ] in fun pname -> QualifiedCppName.Match.match_qualifiers matcher (Typ.Procname.get_qualifiers pname)