-
Notifications
You must be signed in to change notification settings - Fork 74
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
Mull skips macros #870
Comments
Mull skips any potential mutations that are part of the macro invocations.
mull generates
during the junk detection we cannot say for sure if the mutation is valid or not, so we discard it to be on the safe side. I remember we touched this topic briefly while discussing AST mutations, but I don't recall the conclusion. |
Would it be possible/sensible to apply Mull to the preprocessed sources? |
There are two answers to this question:
(see Alex's answer above) This was a state of the previous versions of LLVM and there is a small chance that this could improve. This is something that we could check.
|
On 04/06/21 10:16, Stanislav Pankevich wrote:
Would it be possible/sensible to apply Mull to the preprocessed sources?
There are two answers to this question:
1. It is one of the limitations of the IR-level mutations that we couldn't find a workaround for: imprecision of the debug information for the preprocessed parts.
(see Alex's answer above)
This was a state of the previous versions of LLVM and there is a small chance that this could improve. This is something that we could check.
2. On the AST level, it should be possible to implement this, but we simply haven't done it yet. It is a good idea to include the mutations in the preprocessed sources to the AST roadmap here: #867 <#867> (done just now).
Sorry, my comment was not very clear. What I meant was to pass the code
through "gcc -E -P" and use Mull over the result. I think this would
solve the problem of the OP, which is to Mull code using the X Macros
technique.
|
Hi @RobertoBagnara, it's certainly possible to run mull against preprocessed source code. As long as you can build an executable that has bitcode embedded in it you are good to go. Though, you may get many more mutants that you want. As part of the normal run mull discards all the mutants that are coming from the "system" headers. I'm afraid in the case of a preprocessed file mull won't be able to distinguish between a "system" function and the "user" functions. |
Hello, it's me again :D, I noticed that mull doesn't analyze a couple of file whose code is under #define, is this normal or do I keep missing some flags?
The text was updated successfully, but these errors were encountered: