]> granicus.if.org Git - clang/commitdiff
[analyzer] Don't delete TaintConfig copy constructor
authorAlex Langford <apl@fb.com>
Wed, 14 Aug 2019 01:09:07 +0000 (01:09 +0000)
committerAlex Langford <apl@fb.com>
Wed, 14 Aug 2019 01:09:07 +0000 (01:09 +0000)
Summary:
Explicitly deleting the copy constructor makes compiling the function
`ento::registerGenericTaintChecker` difficult with some compilers. When we
construct an `llvm::Optional<TaintConfig>`, the optional is constructed with a
const TaintConfig reference which it then uses to invoke the deleted TaintConfig
copy constructor.

I've observered this failing with clang 3.8 on Ubuntu 16.04.

Reviewers: compnerd, Szelethus, boga95, NoQ, alexshap

Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, Charusso, llvm-commits, cfe-commits

Tags: #clang

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@368779 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp

index b2172f6e9f544135ae832d8dc349a95969b18e98..42b35acd31e5aea4cd42edb944402014212d6479 100644 (file)
@@ -71,9 +71,9 @@ public:
     std::vector<NameArgsPair> Sinks;
 
     TaintConfiguration() = default;
-    TaintConfiguration(const TaintConfiguration &) = delete;
+    TaintConfiguration(const TaintConfiguration &) = default;
     TaintConfiguration(TaintConfiguration &&) = default;
-    TaintConfiguration &operator=(const TaintConfiguration &) = delete;
+    TaintConfiguration &operator=(const TaintConfiguration &) = default;
     TaintConfiguration &operator=(TaintConfiguration &&) = default;
   };