Avoid warnings-as-errors build failure (#3588)

Lambda needs a return value to avoid a build failure.
pull/3610/head
Rob Suderman 2024-08-02 12:27:31 -07:00 committed by GitHub
parent d0933b0eb6
commit 7e7af67080
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 14 additions and 9 deletions

View File

@ -1335,9 +1335,10 @@ llvm::SmallVector<APInt> getFoldValueAtIndexInt(llvm::ArrayRef<Attribute> attrs,
using NAryFoldFpOperator = std::function<double(ArrayRef<double>)>; using NAryFoldFpOperator = std::function<double(ArrayRef<double>)>;
using NAryFoldIntOperator = std::function<APInt(ArrayRef<APInt>)>; using NAryFoldIntOperator = std::function<APInt(ArrayRef<APInt>)>;
static OpFoldResult naryFolderHelper(ArrayRef<Attribute> operands, Type ty, static OpFoldResult
NAryFoldFpOperator fpFolder, naryFolderHelper(ArrayRef<Attribute> operands, Type ty,
NAryFoldIntOperator intFolder) { std::optional<NAryFoldFpOperator> fpFolder,
std::optional<NAryFoldIntOperator> intFolder) {
constexpr int64_t kMaxFold = 16; constexpr int64_t kMaxFold = 16;
for (auto attr : operands) { for (auto attr : operands) {
if (!attr) if (!attr)
@ -1381,12 +1382,15 @@ static OpFoldResult naryFolderHelper(ArrayRef<Attribute> operands, Type ty,
const int64_t numValues = allSplats ? 1 : resultBTy.getNumElements(); const int64_t numValues = allSplats ? 1 : resultBTy.getNumElements();
if (fpTy) { if (fpTy) {
if (!fpFolder.has_value())
return nullptr;
auto folder = fpFolder.value();
llvm::SmallVector<APFloat> folded; llvm::SmallVector<APFloat> folded;
for (int i = 0, s = numValues; i < s; ++i) { for (int i = 0, s = numValues; i < s; ++i) {
auto inputs = getFoldValueAtIndexFp(operands, i); auto inputs = getFoldValueAtIndexFp(operands, i);
if (inputs.size() != operands.size()) if (inputs.size() != operands.size())
return nullptr; return nullptr;
double fold = fpFolder(inputs); double fold = folder(inputs);
APFloat val(fold); APFloat val(fold);
bool unused; bool unused;
@ -1398,13 +1402,16 @@ static OpFoldResult naryFolderHelper(ArrayRef<Attribute> operands, Type ty,
} }
if (intTy) { if (intTy) {
if (!intFolder.has_value())
return nullptr;
auto folder = intFolder.value();
llvm::SmallVector<APInt> folded; llvm::SmallVector<APInt> folded;
for (int i = 0, s = numValues; i < s; ++i) { for (int i = 0, s = numValues; i < s; ++i) {
auto inputs = auto inputs =
getFoldValueAtIndexInt(operands, dty.getIntOrFloatBitWidth(), i); getFoldValueAtIndexInt(operands, dty.getIntOrFloatBitWidth(), i);
if (inputs.size() != operands.size()) if (inputs.size() != operands.size())
return nullptr; return nullptr;
folded.push_back(intFolder(inputs)); folded.push_back(folder(inputs));
} }
return DenseElementsAttr::get(resultBTy, folded); return DenseElementsAttr::get(resultBTy, folded);
} }
@ -1866,11 +1873,9 @@ OpFoldResult AtenLogOp::fold(FoldAdaptor adaptor) {
assert(inputs.size() == 1); assert(inputs.size() == 1);
return std::log(inputs[0]); return std::log(inputs[0]);
}; };
auto intFold = [](llvm::ArrayRef<APInt> inputs) -> APInt {
assert(false && "should not reach here");
};
return naryFolderHelper(adaptor.getOperands(), resultType, fpFold, intFold); return naryFolderHelper(adaptor.getOperands(), resultType, fpFold,
std::nullopt);
} }
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//