Hi all,

we could add a general "unreachable code filter”. At least simple CFG based 
unreachability should be doable. But as always I prefer to fix the root cause ;)

Cheers,
-marc


> On 23. Dec 2018, at 01:24, Evgeny Mandrikov <mandri...@gmail.com> wrote:
> 
> Hi guys,
> 
> First of all please excuse me for the delay with reply.
> 
> On Wed, Nov 21, 2018 at 5:27 PM Remi Forax <fo...@univ-mlv.fr 
> <mailto:fo...@univ-mlv.fr>> wrote:
> So you have several ways to fix the issue,
> - ask Evgeny (in CC) that jacoco should recognize the nop ... athrow sequence 
> and do not report it.
> 
> Generally speaking unfortunately sequence of NOPs followed by ATHROW can 
> appear in non-dead bytecode (reachable).
> For example Kotlin likes to insert NOPs in non-dead bytecode (reachable) and, 
> while I don't have exact example, potentially they can be followed by ATHROW.
> So just recognition of sequence seems fragile to me.
> While we aware of this infamous sequence and can think about implementation 
> of reachability analysis ( CC Marc R. Hoffmann ),
> class files that do not come directly from compiler will likely lead to 
> not-so-nice results (case of post-processing by ASM),
> because of mapping of coverage back on source files.
> This limits need / ROI of this reachability analysis, thus
>  
> - fix the groovy compiler to not generate dead code
> 
> IMO fix of compiler is ideal option with benefits of everyone, e.g. in this 
> case class files produced by Groovy compiler will be at least smaller ;)
> Andreas, do you think this is feasible?
> 
> BTW I'm not aware of cases where javac or kotlinc generate unreachable code.
> 
> 
> Regards,
> Evgeny
> 

Reply via email to