diff --git a/clang/include/clang/AST/PropertiesBase.td b/clang/include/clang/AST/PropertiesBase.td index 8a26aace90a148..474b49b0cd0067 100644 --- a/clang/include/clang/AST/PropertiesBase.td +++ b/clang/include/clang/AST/PropertiesBase.td @@ -799,13 +799,14 @@ let Class = PropertyTypeCase in { def : Property<"numExpansions", Optional> { let Read = [{ // Translate unsigned -> uint32_t just in case. - node.getNumTemplateExpansions().transform( - [](unsigned i) { return uint32_t(i); }) + llvm::transformOptional(node.getNumTemplateExpansions(), + [](unsigned i) { return uint32_t(i); }) }]; } def : Creator<[{ - auto numExpansionsUnsigned = - numExpansions.transform([](uint32_t i) { return unsigned(i); }); + auto numExpansionsUnsigned = llvm::transformOptional( + numExpansions, [](uint32_t i) { return unsigned(i); }); + return TemplateArgument(name, numExpansionsUnsigned); }]>; } diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h index ad5ba1d2468ab1..23bb6d66cc4719 100644 --- a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h +++ b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h @@ -218,15 +218,16 @@ runDataflowAnalysis( BlockStates; BlockStates.reserve(TypeErasedBlockStates->size()); - llvm::transform(std::move(*TypeErasedBlockStates), - std::back_inserter(BlockStates), [](auto &OptState) { - return std::move(OptState).transform([](auto &&State) { - return DataflowAnalysisState{ - llvm::any_cast( - std::move(State.Lattice.Value)), - std::move(State.Env)}; - }); - }); + llvm::transform( + std::move(*TypeErasedBlockStates), std::back_inserter(BlockStates), + [](auto &OptState) { + return llvm::transformOptional(std::move(OptState), [](auto &&State) { + return DataflowAnalysisState{ + llvm::any_cast( + std::move(State.Lattice.Value)), + std::move(State.Env)}; + }); + }); return BlockStates; }