-
Notifications
You must be signed in to change notification settings - Fork 140
Bugs reported and fixed
Pavel I. Kryukov edited this page Jun 12, 2022
·
70 revisions
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.
MIPT-V / MIPT-MIPS — Cycle-accurate pre-silicon simulation.