Issues found PVS studio static analyzer
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
Hi! I found several issues in LLVM code using static analyzer tool PVS-studio. I hope this will be helpful. Full descriptions in the article: https://pvs-studio.com/en/blog/posts/cpp/1318/
- [ ] #170115
The PVS-Studio warning: V501 There are identical sub-expressions to the left and to the right of the '==' operator: PeekArg.getValNo() == PeekArg.getValNo() PPCISelLowering.cpp 7865
- [x] #170117
The PVS-Studio warning: V519 The 'FeaturesValue' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1190, 1192. LVCodeViewReader.cpp 1192
- [x] #170118
The PVS-Studio warning: V609 Divide by zero. Denominator range [0..255]. RISCVCustomBehaviour.cpp 268
- [ ] #170119
The PVS-Studio warning: V779 Unreachable code detected. It is possible that an error is present. VEISelDAGToDAG.cpp 321
- [ ] #170120
The PVS-Studio warnings: V560 a part of conditional expression is always false: Opc == ARM::MVE_VORR. ARMBaseInstrInfo.cpp 752
- [ ] #170121
The PVS-Studio warning: V590 Consider inspecting this expression. The expression is excessive or contains a misprint. DwarfDebug.cpp 485
- [x] #170122
The PVS-Studio warning: V547 Expression 'Value' is always false. LoongArchAsmBackend.cpp 139
- [ ] #170124
The PVS-Studio warning: V560 A part of conditional expression is always false: Defs.count(R) > 1. HexagonMCChecker.cpp 612
- [x] #170125
The PVS-Studio warning: V547 Expression is always true. SystemZAsmPrinter.cpp 1324
- [ ] #170126
The PVS-Studio warning: V791 The initial value of the index in the nested loop equals 'I'. Perhaps, 'I + 1' should be used instead. LoopUnrollAndJam.cpp 793
- [x] 14. Type issue in expression.
The PVS-Studio warning: V560 A part of conditional expression is always false: AVX10Ver >= 2. Host.cpp 2177
https://github.com/llvm/llvm-project/pull/172350
- [x] 1. Misprint in conditional.
The PVS-Studio warning: V501 There are identical sub-expressions '!Subtarget.hasZeroCycleRegMoveFPR64()' to the left and to the right of the '&&' operator. AArch64InstrInfo.cpp 5430
https://github.com/llvm/llvm-project/pull/173450
I took the liberty of correcting some simple fragments myself:
https://github.com/llvm/llvm-project/pull/171566
https://github.com/llvm/llvm-project/pull/171197
- [x] 3. Array overrun is possible.
The PVS-Studio warning: V557 Array overrun is possible. The value of 'regIdx' index could reach 31. VEAsmParser.cpp 696
- [x] 10. Excessive check.
The PVS-Studio warning: V547 Expression 'IsLeaf' is always false. PPCInstrInfo.cpp 419
- [x] 11. Doubling the same check.
The PVS-Studio warning: V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 5820, 5823. PPCInstrInfo.cpp 5823
- [x] 12. Wrong value in conditional.
The PVS-Studio warning: V547 Expression 'Opcode == Instruction::FDiv' is always false. GISelValueTracking.cpp 1451
- [x] 15. Excessive check.
The PVS-Studio warning: V547 Expression 'i != e' is always true. MachineFunction.cpp 1444
- [x] 17. Excessive assignment.
The PVS-Studio warning: V1048 The 'FirstOp' variable was assigned the same value. MachineInstr.cpp 1995
- [x] 18. Excessive check.
The PVS-Studio warning: V547 Expression 'AllSame' is always true. SimplifyCFG.cpp 1914
- [x] 19. Excessive check.
The PVS-Studio warning: V547 Expression 'AbbrevDecl' is always true. LVDWARFReader.cpp 398
Contributor guide
Assessment
This issue has not been assessed yet.