diff --git a/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp b/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp index dd20412ee7080..dcd1f7dcba5d4 100644 --- a/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp +++ b/mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp @@ -327,8 +327,12 @@ static void createNewAliasScopesFromNoAliasParameter( getUnderlyingObjectSet(pointer); if (failed(underlyingObjectSet)) return; - llvm::copy(*underlyingObjectSet, - std::inserter(basedOnPointers, basedOnPointers.begin())); + // Switched from llvm::copy(*underlyingObjectSet, + // std::inserter(basedonPointers, ...)) to support libstdc++10 and + // C++20. We need to support this so that python bindings can be built + // with widely compatible versions of glibc. + for (Value v : *underlyingObjectSet) + basedOnPointers.insert(v); } bool aliasesOtherKnownObject = false;