Index: include/clang/AST/DeclBase.h
===================================================================
--- include/clang/AST/DeclBase.h
+++ include/clang/AST/DeclBase.h
@@ -384,7 +384,7 @@
     if (StatisticsEnabled) add(DK);
   }
 
-  virtual ~Decl();
+  virtual ~Decl() = default;
 
   /// Update a potentially out-of-date declaration.
   void updateOutOfDate(IdentifierInfo &II) const;
Index: include/clang/Sema/ObjCMethodList.h
===================================================================
--- include/clang/Sema/ObjCMethodList.h
+++ include/clang/Sema/ObjCMethodList.h
@@ -33,9 +33,8 @@
   ObjCMethodList() { }
   ObjCMethodList(ObjCMethodDecl *M)
       : MethodAndHasMoreThanOneDecl(M, 0) {}
-  ObjCMethodList(const ObjCMethodList &L)
-      : MethodAndHasMoreThanOneDecl(L.MethodAndHasMoreThanOneDecl),
-        NextAndExtraBits(L.NextAndExtraBits) {}
+  ObjCMethodList(const ObjCMethodList &L) = default;
+  ObjCMethodList &operator=(const ObjCMethodList &L) = default;
 
   ObjCMethodList *getNext() const { return NextAndExtraBits.getPointer(); }
   unsigned getBits() const { return NextAndExtraBits.getInt(); }
Index: include/clang/Sema/Sema.h
===================================================================
--- include/clang/Sema/Sema.h
+++ include/clang/Sema/Sema.h
@@ -10017,6 +10017,7 @@
 
     CUDADiagBuilder(Kind K, SourceLocation Loc, unsigned DiagID,
                     FunctionDecl *Fn, Sema &S);
+    CUDADiagBuilder(const CUDADiagBuilder &) = default;
     ~CUDADiagBuilder();
 
     /// Convertible to bool: True if we immediately emitted an error, false if
Index: include/clang/Tooling/Refactoring/RefactoringActionRule.h
===================================================================
--- include/clang/Tooling/Refactoring/RefactoringActionRule.h
+++ include/clang/Tooling/Refactoring/RefactoringActionRule.h
@@ -36,7 +36,7 @@
 /// partially).
 class RefactoringActionRuleBase {
 public:
-  virtual ~RefactoringActionRuleBase() {}
+  virtual ~RefactoringActionRuleBase() = default;
 
   /// Initiates and performs a specific refactoring action.
   ///
Index: include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h
===================================================================
--- include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h
+++ include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h
@@ -81,7 +81,7 @@
 /// A base class for any requirement that requires some refactoring options.
 class RefactoringOptionsRequirement : public RefactoringActionRuleRequirement {
 public:
-  virtual ~RefactoringOptionsRequirement() {}
+  virtual ~RefactoringOptionsRequirement() = default;
 
   /// Returns the set of refactoring options that are used when evaluating this
   /// requirement.
Index: lib/AST/DeclBase.cpp
===================================================================
--- lib/AST/DeclBase.cpp
+++ lib/AST/DeclBase.cpp
@@ -289,9 +289,6 @@
 // Decl Implementation
 //===----------------------------------------------------------------------===//
 
-// Out-of-line virtual method providing a home for Decl.
-Decl::~Decl() = default;
-
 void Decl::setDeclContext(DeclContext *DC) {
   DeclCtx = DC;
 }