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
