diff options
-rw-r--r-- | clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h | 3 | ||||
-rw-r--r-- | clang/lib/AST/APValue.cpp | 2 | ||||
-rw-r--r-- | clang/lib/AST/Decl.cpp | 6 |
3 files changed, 7 insertions, 4 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h index 4d65350d27e..d347be09551 100644 --- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h +++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h @@ -986,7 +986,8 @@ public: template <typename T> CallEventRef<T> CallEvent::cloneWithState(ProgramStateRef NewState) const { assert(isa<T>(*this) && "Cloning to unrelated type"); - assert(sizeof(T) == sizeof(CallEvent) && "Subclasses may not add fields"); + static_assert(sizeof(T) == sizeof(CallEvent), + "Subclasses may not add fields"); if (NewState == State) return cast<T>(this); diff --git a/clang/lib/AST/APValue.cpp b/clang/lib/AST/APValue.cpp index 5cdeb00e852..049518e933f 100644 --- a/clang/lib/AST/APValue.cpp +++ b/clang/lib/AST/APValue.cpp @@ -622,7 +622,7 @@ ArrayRef<const CXXRecordDecl*> APValue::getMemberPointerPath() const { void APValue::MakeLValue() { assert(isUninit() && "Bad state change"); - assert(sizeof(LV) <= DataSize && "LV too big"); + static_assert(sizeof(LV) <= DataSize, "LV too big"); new ((void*)(char*)Data.buffer) LV(); Kind = LValue; } diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 038c7acb0f8..a61af50c480 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -1613,8 +1613,10 @@ VarDecl::VarDecl(Kind DK, DeclContext *DC, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo, StorageClass SC) : DeclaratorDecl(DK, DC, IdLoc, Id, T, TInfo, StartLoc), Init() { - assert(sizeof(VarDeclBitfields) <= sizeof(unsigned)); - assert(sizeof(ParmVarDeclBitfields) <= sizeof(unsigned)); + static_assert(sizeof(VarDeclBitfields) <= sizeof(unsigned), + "VarDeclBitfields too large!"); + static_assert(sizeof(ParmVarDeclBitfields) <= sizeof(unsigned), + "ParmVarDeclBitfields too large!"); AllBits = 0; VarDeclBits.SClass = SC; // Everything else is implicitly initialized to false. |