diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-07-01 15:29:53 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-07-01 15:29:53 +0000 | 
| commit | 3311ed4f0eaf15db42761fbca008b75bab92f9a8 (patch) | |
| tree | 8085e5f13ef73236c8763d05ea734567566c053d /clang/lib/Sema/SemaDeclCXX.cpp | |
| parent | ce68f6093edddc96a3ba63ceb5963c8981235332 (diff) | |
| download | bcm5719-llvm-3311ed4f0eaf15db42761fbca008b75bab92f9a8.tar.gz bcm5719-llvm-3311ed4f0eaf15db42761fbca008b75bab92f9a8.zip | |
Make loops infinitely faster. No functionality change.
llvm-svn: 107398
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 92737805365..94d00b26973 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -2622,7 +2622,7 @@ namespace {      /// \brief Note that       void CalledDecl(CXXMethodDecl *Method) {        // If we already know that we allow all exceptions, do nothing. -      if (AllowsAllExceptions) +      if (AllowsAllExceptions || !Method)          return;        const FunctionProtoType *Proto @@ -2799,8 +2799,9 @@ void Sema::AddImplicitlyDeclaredMembersToClass(Scope *S,      //       -- each direct base class B of X has a copy assignment operator      //          whose parameter is of type const B&, const volatile B& or B,      //          and -    for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(); -         HasConstCopyAssignment && Base != ClassDecl->bases_end(); ++Base) { +    for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), +                                         BaseEnd = ClassDecl->bases_end(); +         HasConstCopyAssignment && Base != BaseEnd; ++Base) {        assert(!Base->getType()->isDependentType() &&              "Cannot generate implicit members for class with dependent bases.");        const CXXRecordDecl *BaseClassDecl @@ -2814,8 +2815,9 @@ void Sema::AddImplicitlyDeclaredMembersToClass(Scope *S,      //          type M (or array thereof), each such class type has a copy      //          assignment operator whose parameter is of type const M&,      //          const volatile M& or M. -    for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(); -         HasConstCopyAssignment && Field != ClassDecl->field_end(); +    for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), +                                    FieldEnd = ClassDecl->field_end(); +         HasConstCopyAssignment && Field != FieldEnd;           ++Field) {        QualType FieldType = (*Field)->getType();        if (const ArrayType *Array = Context.getAsArrayType(FieldType)) | 

