diff options
author | Nicolas Lesser <blitzrakete@gmail.com> | 2018-08-03 01:24:52 +0000 |
---|---|---|
committer | Nicolas Lesser <blitzrakete@gmail.com> | 2018-08-03 01:24:52 +0000 |
commit | e19e5a69b3546d5cf853360bd4c848d29190f4ea (patch) | |
tree | d9e897ad5474d65698b5b1bdb1873b4a0c0fe3ee /clang/lib/Sema/SemaDecl.cpp | |
parent | dc5ce72afada30ba99a07157703b00b4ae063f40 (diff) | |
download | bcm5719-llvm-e19e5a69b3546d5cf853360bd4c848d29190f4ea.tar.gz bcm5719-llvm-e19e5a69b3546d5cf853360bd4c848d29190f4ea.zip |
Fold two cast plus a cast in a loop into a variable.
This avoids to recast `Record` multiple times.
llvm-svn: 338801
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index b92d76ad420..c49125edccc 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -15602,6 +15602,7 @@ void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, } RecordDecl *Record = dyn_cast<RecordDecl>(EnclosingDecl); + CXXRecordDecl *CXXRecord = dyn_cast<CXXRecordDecl>(EnclosingDecl); // Start counting up the number of named members; make sure to include // members of anonymous structs and unions in the total. @@ -15691,9 +15692,8 @@ void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, // virtual bases after the derived members. This would make a flexible // array member declared at the end of an object not adjacent to the end // of the type. - if (CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(Record)) - if (RD->getNumVBases() != 0) - Diag(FD->getLocation(), diag::err_flexible_array_virtual_base) + if (CXXRecord && CXXRecord->getNumVBases() != 0) + Diag(FD->getLocation(), diag::err_flexible_array_virtual_base) << FD->getDeclName() << Record->getTagKind(); if (!getLangOpts().C99) Diag(FD->getLocation(), diag::ext_c99_flexible_array_member) @@ -15831,7 +15831,7 @@ void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, // Okay, we successfully defined 'Record'. if (Record) { bool Completed = false; - if (CXXRecordDecl *CXXRecord = dyn_cast<CXXRecordDecl>(Record)) { + if (CXXRecord) { if (!CXXRecord->isInvalidDecl()) { // Set access bits correctly on the directly-declared conversions. for (CXXRecordDecl::conversion_iterator @@ -15902,7 +15902,7 @@ void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, ProcessDeclAttributeList(S, Record, Attrs); // We may have deferred checking for a deleted destructor. Check now. - if (CXXRecordDecl *CXXRecord = dyn_cast<CXXRecordDecl>(Record)) { + if (CXXRecord) { auto *Dtor = CXXRecord->getDestructor(); if (Dtor && Dtor->isImplicit() && ShouldDeleteSpecialMember(Dtor, CXXDestructor)) { |