Could you attach the unreduced x.ii? I will try to investigate tomorrow.
Thanks!
- Yang
On 6/30/2013 4:22 AM, Дмитрий Дьяченко wrote:
Thanks for clarification
"clang_delta --transformation=return-void --counter=1 x.ii" solve issue
What I do incorrectly? -- why "--transformation=return-void " is not
run in my case?
Dmitry
2013/6/30 Yang Chen<[email protected]>:
On 6/30/2013 3:43 AM, Дмитрий Дьяченко wrote:
Hi!
I use creduce-git-latest
After "creduce --sanitize --sanity-checks --sllooww x.sh x.ii" I have
$ cat x.ii
typedef struct
{
volatile struct
{
} x0;
}
x1;
int
x2 ()
{
x1 x3 = x3;
return 0;
}
Looks like there are possible simplifications : definitely 1 / may be 2
1) remove 'return 0;' and change return type for x2() from 'int' to 'void'
Hmm, we have a similar pass to do this, for example:
$ clang_delta --transformation=return-void --counter=1 x.ii
typedef struct
{
volatile struct
{
} x0;
}
x1;
void
x2 ()
{
x1 x3 = x3;
0;
}
It does almost what you said except keeping 0. The reason I chose to leave
'0' is that
* in general we could have something like "return foo()", where foo()
could have side-effect and may be relevant to the bug;
* if foo() is not relevant to the bug, then later pass such as pass-line
can nuke it.
- Yang