-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[error] Uh oh! Mull corrupted LLVM module (Tarantool, tzcode) #994
Comments
There is an issue with I'll keep investigating it, but as a temporary workaround I can suggest not using this specific mutator: you can replace |
@AlexDenisov I'll try, thanks! |
Smallest reproducer I could get: void a() {
int c;
c = c && c && c;
} with the following mutators:
- cxx_logical_and_to_or and this command: > clang -g -O0 -fexperimental-new-pass-manager -fpass-plugin=/usr/local/lib/mull-ir-frontend-12 -grecord-command-line -c test.c
[error] Uh oh! Mull corrupted LLVM module.
Please, report the following error message here https://github.com/mull-project/mull/issues
Underlying error message:
PHINode should have one entry for each predecessor of its parent basic block!
%11 = phi i1 [ false, %4 ], [ false, %0 ], [ %9, %7 ], !dbg !18
[error] Error messages are treated as fatal errors. Exiting now. @stanislaw do you have any ideas? Seems like a 'trivial' case (or a family of cases) is not handled 😃 |
Actually, the same happens with void a() {
int c;
c = c || c || c;
} |
This specific issue is fixed here #998. |
Btw, @ligurio you can ignore certain mutators via the following config: ignoreMutators:
- cxx_logical_or_to_and
- cxx_logical_and_to_or |
Sure, similar issues happen in other files too and I workaround them in config: mutators:
- cxx_logical
includePaths:
- src
excludePaths:
- third_party # https://github.com/mull-project/mull/issues/996
- test
- src/lib/small
- src/lib/tzcode # https://github.com/mull-project/mull/issues/994
- src/lib/core
- src/lib/json # json.c
- src/box # xlog.c
quiet: false |
How to reproduce:
mull.yml:
Source: https://github.com/tarantool/tarantool/blob/master/src/lib/tzcode/strptime.c
$ mull-runner-12 --version
Mull: Practical mutation testing for C and C++
Home: https://github.com/mull-project/mull
Docs: https://mull.readthedocs.io
Version: 0.17.1
Commit: ac98382
Date: 17 Mar 2022
LLVM: 12.0.0
The text was updated successfully, but these errors were encountered: