diff options
Diffstat (limited to 'lib/Sema/SemaExpr.cpp')
| -rw-r--r-- | lib/Sema/SemaExpr.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 091fd27db85dd..8be11572b2e05 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -117,7 +117,7 @@ static AvailabilityResult DiagnoseAvailabilityOfDecl(Sema &S,      case AR_Available:      case AR_NotYetIntroduced:        break; -             +      case AR_Deprecated:        if (S.getCurContextAvailability() != AR_Deprecated)          S.EmitAvailabilityWarning(Sema::AD_Deprecation, @@ -11630,8 +11630,11 @@ void Sema::MarkFunctionReferenced(SourceLocation Loc, FunctionDecl *Func,    } else if (CXXDestructorDecl *Destructor =                   dyn_cast<CXXDestructorDecl>(Func)) {      Destructor = cast<CXXDestructorDecl>(Destructor->getFirstDecl()); -    if (Destructor->isDefaulted() && !Destructor->isDeleted()) +    if (Destructor->isDefaulted() && !Destructor->isDeleted()) { +      if (Destructor->isTrivial() && !Destructor->hasAttr<DLLExportAttr>()) +        return;        DefineImplicitDestructor(Loc, Destructor); +    }      if (Destructor->isVirtual())        MarkVTableUsed(Loc, Destructor->getParent());    } else if (CXXMethodDecl *MethodDecl = dyn_cast<CXXMethodDecl>(Func)) {  | 
