diff --git a/clang/lib/Basic/Targets/RISCV.cpp b/clang/lib/Basic/Targets/RISCV.cpp index d1d9cc1c770e3..2e9ce468b5d3e 100644 --- a/clang/lib/Basic/Targets/RISCV.cpp +++ b/clang/lib/Basic/Targets/RISCV.cpp @@ -236,8 +236,7 @@ ArrayRef RISCVTargetInfo::getTargetBuiltins() const { } static std::vector -collectNonISAExtFeature(const std::vector &FeaturesNeedOverride, - int XLen) { +collectNonISAExtFeature(ArrayRef FeaturesNeedOverride, int XLen) { auto ParseResult = llvm::RISCVISAInfo::parseFeatures(XLen, FeaturesNeedOverride); @@ -265,11 +264,11 @@ resolveTargetAttrOverride(const std::vector &FeaturesVec, if (I == FeaturesVec.end()) return FeaturesVec; - const std::vector FeaturesNeedOverride(FeaturesVec.begin(), I); + ArrayRef FeaturesNeedOverride(&*FeaturesVec.begin(), &*I); std::vector NonISAExtFeature = collectNonISAExtFeature(FeaturesNeedOverride, XLen); - auto ResolvedFeature = std::vector(++I, FeaturesVec.end()); + std::vector ResolvedFeature(++I, FeaturesVec.end()); ResolvedFeature.insert(ResolvedFeature.end(), NonISAExtFeature.begin(), NonISAExtFeature.end()); @@ -415,8 +414,7 @@ static void handleFullArchString(StringRef FullArchStr, Features.push_back("+" + FullArchStr.str()); } else { std::vector FeatStrings = (*RII)->toFeatureVector(); - for (auto FeatString : FeatStrings) - Features.push_back(FeatString); + Features.insert(Features.end(), FeatStrings.begin(), FeatStrings.end()); } }