Bugs reported and fixed - MIPT-ILab/mipt-mips GitHub Wiki
MIPT-V is an educational project, so we always want to teach most modern technologies and tools. However, they often contain bugs or some features are not implemented. That's why we report them in our nearest convenience.
All bugs are found and reported by Pavel Kryukov, unless mentioned otherwise.
-
Clang++ bugs:
-
llvm-project/llvm#35632 β False positive detection of unneeded declaration
for user-defined literals used inside class templates. Bug observed by Aleksandr Misevich while debugging
MIPT-MIPS/#276
-
llvm-project/llvm#35632 β False positive detection of unneeded declaration
for user-defined literals used inside class templates. Bug observed by Aleksandr Misevich while debugging
-
libc++ bugs:
-
llvm-project/llvm#34402Ββ missing 'noexcept' specifier forstring_view
literals (check-in)
-
-
Static Analyzer false positives and UX enhancements:
-
llvm-project/llvm#35631β False positive dead code detection for C++17 structured binding - llvm-project/llvm#43410 β cplusplus.NewDeleteLeaks should not report on system headers
- llvm-project/llvm#44859 β NewDeleteLeaks reports false positive with shared_ptr
-
-
Clang-Tidy false positives and UX enhancements:
-
llvm-project/llvm#34805β βpossible exceptionβ in constant expression -
llvm-project/llvm#39117β fuchsia-multiple-inheritance should not warn on class forward declaration. -
llvm-project/llvm#39945β do not try to reinvent a constexpr version of#define COMMA ,
. -
llvm-project/llvm#39946β do not try to reinvent a constexpr version of#define STRING(x) # x
. -
llvm-project/llvm#39947β support regexp for NOLINT statements. -
llvm-project/llvm#33950βint main()
cannot havestd::array
as an argument. -
llvm-project/llvm#39979βstd::string
is not a magic number. -
llvm-project/llvm#39986β template instantiations should not expose enums as 'magic numbers'. - llvm-project/llvm#42454 β do not warn about ODR violation for constexpr template variable.
- llvm-project/llvm#43376 β fuchsia-multiple-inheritance should not warn on template class instantiation.
-
llvm-project/llvm#43574β bugprone-branch-clone false positive with template functions and constexpr -
llvm-project/llvm#44161β bugprone-infinite-loop false positive with CATCH2 - llvm-project/llvm#44852 β readability-simplify-boolean-expr should not trigger on if statement with initializer
-
llvm-project/llvm#45580β hicpp-use-nullptr does not make sense with spaceship operator - llvm-project/llvm#53961 β hicpp-use-nullptr does not make sense with spaceship operator (reopened)
- llvm-project/llvm#53997 β cppcoreguidelines-pro-bounds-constant-array-index can be smarter for std::array
-
llvm-project/llvm#54011β misc-redundant-expression false positive with operator== overload
-
-
Clang-Tidy
hicpp-signed-bitwise
has a special attention as we do lots of shifts-
llvm-project/llvm#36311β bitwise assignment operators (&=, |=, ^=, <<=, >>=
) should be analyzed -
llvm-project/llvm#36309β do not blame1u << 2
for containing a signed integer literal. - llvm-project/llvm#44322 β hicpp-signed-bitwise.IgnorePositiveIntegerLiterals should be recursive
- llvm-project/llvm#44391 β hicpp-signed-bitwise false positive with byte swapping code
-
-
Bug 225040
β False positive on UB right shifting in unreachable code. -
β internal compiler error while referencing template variableBug 451137
-
β cannot bind temporary int object to an rvalue referenceBug 457095
-
β extern template instantiation does not work for virtual functionsBug 457098
-
β ones-propagating right shift is optimized incorrectly. Firstly observed by Maxim Davydov inBug 833637
MIPT-MIPS/#1143 -
not a bugBug 846216
β false positive warning C4297 for constructor -
β W4100 with concept parameterBug 1662465
LGTM.com is a great tool to detect possible errors. We report false positives:
- github/codeql#5709 C++ std::make_unique is considered as a stack variable.
- We used to build GNU Binutils with more pedantic Clang compiler as a part of continuous integration flow. During the procedure while resolving
MIPT-MIPS/#147, a bug in GNU Binutils was found by Kirill Nedostoev. Methodology was extracted to a separate repository to find more bugs in Binutils and Clang. -
PR libstdc++/82685β missing 'noexcept' specifier forstring_view
literals
- We improve RISC-V community infrastructure:
- riscv/riscv-opcodes#23
- riscv/riscv-opcodes#26 by Rustem Yunusov
- riscv/riscv-tests#183
- riscv/riscv-opcodes#41
- riscv/riscv-opcodes#53
- riscv/riscv-opcodes#112
- riscv/riscv-opcodes#113
- riscv/riscv-opcodes#114
- riscv/riscv-opcodes#118
- riscv/riscv-opcodes#119
- riscv/riscv-opcodes#120
- riscv/riscv-opcodes#121
- riscv/riscv-opcodes#122
- Enhancements to Boost C++ libraries:
- We contribute to POPL option parser library, listed in POPL 1.2.0 release note.
- Minor fixes for ELFIO: serge1/ELFIO#26, serge1/ELFIO#27, serge1/ELFIO#28.
- Patches for GDB to support C++ simulators:
-
2283a21
Change "xor" name in cpu_core to allow building with iso646.h or C++ compiler by Vyacheslav Kompan -
444b3fa
Add 'extern C' if simulator is written in C++ -
8f0a214
Include <string.h> to dis-asm.h to get strchr declaration -
dc7e818
sim: Fix definition of SIM_ARANGE_INLINE -
7516c26
Do not expand macros to 'defined' -
f47674b
sim-utils.c: prevent buffer overflow.
-
- Infrastructure improvements for CEN64:
- https://github.com/n64dev/cen64/pull/100
- https://github.com/n64dev/cen64/pull/101
- https://github.com/n64dev/cen64/pull/102
- https://github.com/n64dev/cen64/pull/104
- https://github.com/n64dev/cen64/pull/105
- https://github.com/n64dev/cen64/pull/107
- https://github.com/n64dev/cen64/pull/108
- https://github.com/n64dev/cen64/pull/109
- https://github.com/n64dev/cen64/pull/110
- https://github.com/n64dev/cen64/pull/137
- https://github.com/n64dev/cen64/pull/141
- https://github.com/n64dev/cen64/pull/142
- https://github.com/n64dev/cen64/pull/143
- https://github.com/n64dev/cen64/pull/144
- Fix for MS Visual Studio build of LibELF was reported to Michael "Tired" Riepe who created the library. Unfortunately, Michael had not responded yet, so changes were published to WolfgangSt/libelf#1.