------- Comment #20 from manu at gcc dot gnu dot org  2007-08-20 17:12 -------
(In reply to comment #19)
> 
> What if you had "const int i=0"? As I said before, use() may do a const-cast
> to get rid of the constness of its argument, but the result is only
> well-defined
> if the object pointed to is actually non-const. That is the case here, so 
> use()
> may do exactly this and clobber 'i'. On the other hand, if 'i' was const, then
> the result of any const-cast use() may do on its argument are undefined, and
> it would seem legitimate to propagate the initial value of 'i' into the call
> to foo().
> 

Wolfgang, I understand perfectly what you explain. Yet, from the point of view
of Wuninitialized, only local non-const objects are interesting. And it seems
that for those, GCC does not assume that the function is not going to modify
the object. Thus, it doesn't make much sense for Wuninitialized to assume it.
And, from a technical point of view, it would be difficult to maintain such
dichotomy, since Wuninitialized relies on the SSA representation and the work
of the optimisation passes.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10138

Reply via email to