Hi,
Please find the latest report on new defect(s) introduced to llvm found with Coverity Scan.
4 new defect(s) introduced to llvm found with Coverity Scan.
4 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.
New defect(s) Reported-by: Coverity Scan
Showing 4 of 4 defect(s)
** CID 1506467: Uninitialized variables (UNINIT)
*** CID 1506467: Uninitialized variables (UNINIT)
/flang/lib/Optimizer/Builder/IntrinsicCall.cpp: 2352 in IntrinsicLibrary::genAtand(mlir::Type, llvm::ArrayRefmlir::Value)()
2346 assert(args.size() == 1);
2347 mlir::MLIRContext *context = builder.getContext();
2348 mlir::FunctionType ftype =
2349 mlir::FunctionType::get(context, {resultType}, {args[0].getType()});
2350 mlir::Value atan = getRuntimeCallGenerator(“atan”, ftype)(builder, loc, args);
2351 llvm::APFloat pi = llvm::APFloat(llvm::numbers::pi);
CID 1506467: Uninitialized variables (UNINIT) Using uninitialized value "<temporary>.U" when calling "~APFloat".
2352 mlir::Value dfactor = builder.createRealConstant(
2353 loc, mlir::FloatType::getF64(context), llvm::APFloat(180.0) / pi);
2354 mlir::Value factor = builder.createConvert(loc, resultType, dfactor);
2355 return builder.createmlir::arith::MulFOp(loc, atan, factor);
2356 }
2357
** CID 1506466: Uninitialized variables (UNINIT)
*** CID 1506466: Uninitialized variables (UNINIT)
/flang/lib/Optimizer/Builder/IntrinsicCall.cpp: 2352 in IntrinsicLibrary::genAtand(mlir::Type, llvm::ArrayRefmlir::Value)()
2346 assert(args.size() == 1);
2347 mlir::MLIRContext *context = builder.getContext();
2348 mlir::FunctionType ftype =
2349 mlir::FunctionType::get(context, {resultType}, {args[0].getType()});
2350 mlir::Value atan = getRuntimeCallGenerator(“atan”, ftype)(builder, loc, args);
2351 llvm::APFloat pi = llvm::APFloat(llvm::numbers::pi);
CID 1506466: Uninitialized variables (UNINIT) Using uninitialized value "pi.U" when calling "operator /".
2352 mlir::Value dfactor = builder.createRealConstant(
2353 loc, mlir::FloatType::getF64(context), llvm::APFloat(180.0) / pi);
2354 mlir::Value factor = builder.createConvert(loc, resultType, dfactor);
2355 return builder.createmlir::arith::MulFOp(loc, atan, factor);
2356 }
2357
** CID 1506465: Performance inefficiencies (AUTO_CAUSES_COPY)
/flang/include/flang/Optimizer/Support/Utils.h: 42 in fir::buildBindingTables(llvm::DenseMap<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>>> &, mlir::ModuleOp)()
*** CID 1506465: Performance inefficiencies (AUTO_CAUSES_COPY)
/flang/include/flang/Optimizer/Support/Utils.h: 42 in fir::buildBindingTables(llvm::DenseMap<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>>> &, mlir::ModuleOp)()
36 inline void buildBindingTables(BindingTables &bindingTables,
37 mlir::ModuleOp mod) {
38
39 // The binding tables are defined in FIR from lowering as fir.dispatch_table
40 // operation. Go through each binding tables and store the procedure name and
41 // binding index for later use by the fir.dispatch conversion pattern.
CID 1506465: Performance inefficiencies (AUTO_CAUSES_COPY) Using the "auto" keyword without an "&" causes the copy of an object of type DispatchTableOp.
42 for (auto dispatchTableOp : mod.getOpsfir::DispatchTableOp()) {
43 unsigned bindingIdx = 0;
44 BindingTable bindings;
45 if (dispatchTableOp.getRegion().empty()) {
46 bindingTables[dispatchTableOp.getSymName()] = bindings;
47 continue;
** CID 1506464: Performance inefficiencies (AUTO_CAUSES_COPY)
/flang/include/flang/Optimizer/Support/Utils.h: 49 in fir::buildBindingTables(llvm::DenseMap<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>>> &, mlir::ModuleOp)()
*** CID 1506464: Performance inefficiencies (AUTO_CAUSES_COPY)
/flang/include/flang/Optimizer/Support/Utils.h: 49 in fir::buildBindingTables(llvm::DenseMap<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>>> &, mlir::ModuleOp)()
43 unsigned bindingIdx = 0;
44 BindingTable bindings;
45 if (dispatchTableOp.getRegion().empty()) {
46 bindingTables[dispatchTableOp.getSymName()] = bindings;
47 continue;
48 }
CID 1506464: Performance inefficiencies (AUTO_CAUSES_COPY) Using the "auto" keyword without an "&" causes the copy of an object of type DTEntryOp.
49 for (auto dtEntry : dispatchTableOp.getBlock().getOpsfir::DTEntryOp()) {
50 bindings[dtEntry.getMethod()] = bindingIdx;
51 ++bindingIdx;
52 }
53 bindingTables[dispatchTableOp.getSymName()] = bindings;
54 }
To view the defects in Coverity Scan visit, Coverity Scan - Sign in