diff --git a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp index e27b006903af3e..1bf6592ee6d8e0 100644 --- a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp @@ -36,24 +36,12 @@ using namespace std::placeholders; namespace { struct AnyArgExpr { - // FIXME: Remove constructor in C++17 to turn it into an aggregate. - AnyArgExpr(const Expr *Expression, unsigned ArgumentIndex) - : Expression{Expression}, ArgumentIndex{ArgumentIndex} {} const Expr *Expression; unsigned ArgumentIndex; }; - -struct SourceArgExpr : AnyArgExpr { - using AnyArgExpr::AnyArgExpr; // FIXME: Remove using in C++17. -}; - -struct DestinationArgExpr : AnyArgExpr { - using AnyArgExpr::AnyArgExpr; // FIXME: Same. -}; - -struct SizeArgExpr : AnyArgExpr { - using AnyArgExpr::AnyArgExpr; // FIXME: Same. -}; +struct SourceArgExpr : AnyArgExpr {}; +struct DestinationArgExpr : AnyArgExpr {}; +struct SizeArgExpr : AnyArgExpr {}; using ErrorMessage = SmallString<128>; enum class AccessKind { write, read }; @@ -1425,7 +1413,7 @@ void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE, void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { // void bcopy(const void *src, void *dst, size_t n); - SourceArgExpr Src(CE->getArg(0), 0); + SourceArgExpr Src{CE->getArg(0), 0}; DestinationArgExpr Dest = {CE->getArg(1), 1}; SizeArgExpr Size = {CE->getArg(2), 2};