On Jan 26, 2011, at 5:17 PM, Nico Weber wrote:

> Hi Ted,
> 
> this adds 265 compile errors to the chrome build (we build with
> -Werror). I went through the first 40 or so, and they're all false
> positives. The two most common cases are

Hi Nico,

Thanks for filing these reports.  I expected some fallout from enabling this 
warning, and I want to see these bugs.

One thing I want to make clear is that the goal of -Wuninitialized in clang is 
twofold:

1) Provide consistent results despite the optimization level used for 
compilation (or even -O0)

2) Provide reasonable but conservative results.  I suspect that GCC gives up in 
many cases.

> 
> http://llvm.org/bugs/show_bug.cgi?id=9063

I think there are two cases here, and I've commented in the bug requesting more 
data.


> http://llvm.org/bugs/show_bug.cgi?id=9064 (a real bug)

Yes this is a glaring omission.  Just need to handle fast enumeration.

> 
> I also filed
> http://llvm.org/bugs/show_bug.cgi?id=9061

I think this is reasonable to handle, but only for the case where loops have 
the format:

  for (int i = 0; i < constant ; ...)

It's clear that the loop body is always entered.

> http://llvm.org/bugs/show_bug.cgi?id=9062

I don't think this is reasonable to do.  I suspect GCC just gets lucky because 
it's -Wuninitialized implementation in based on the optimizer or that it simply 
gives up.  There is a control-dependency here that in the general case can only 
be handled using path-sensitive analysis.  Going back to goals (1) and (2), I 
think this is one place where we want Clang to be more conservative than GCC.  
I suspect many will disagree.

> At the moment, we will have to disable -Wuninitialized in chrome if we
> want to update clang (which we _always_ want to do :-) ).

I think 3/4 PRs are reasonable requests to fix.  The only contentious one is 
9062, and I don't know if that is a deal breaker for you.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to