<div class="gmail_quote"><div>Hello Dmitri!</div><div><br></div>Thank you for response. <div><br></div><div>Diagnostic message is correct, may be just unclear. For example of unsafeness see the following code:</div><div><br>
</div><div><div><span style="white-space:pre-wrap">   </span>const char constObj = 'c';</div>
<div><br></div><div><span style="white-space:pre-wrap"> </span>char* nonConstPointer;</div><div><br></div><div><span style="white-space:pre-wrap">  </span>char** nonConstPointerToPointer = &nonConstPointer;</div>
<div><br></div><div><span style="white-space:pre-wrap"> </span>const char** pointerToConstPointer = (const char**)nonConstPointerToPointer; // (1)</div><div><br></div><div><span style="white-space:pre-wrap">     </span>*pointerToConstPointer = &constObj; // nonConstPointer now point to constObj, implies that (1) discards constness from &constObj, so the warning is correct</div>

<div><br></div><div><span style="white-space:pre-wrap"> </span>*nonConstPointer = 'C'; // BANG! Modification of const object.</div><div><br></div><div>May be to make warning more clear I should include more info about types in my warning. </div>
<div><div class="h5">
<br><div class="gmail_quote">On Wed, Jun 20, 2012 at 10:23 PM, Dmitri Gribenko <span dir="ltr"><<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Wed, Jun 20, 2012 at 2:53 AM, Igor Minin <<a href="mailto:i.minin.llvm@gmail.com" target="_blank">i.minin.llvm@gmail.com</a>> wrote:<br>
</div><div>> Hello.<br>
><br>
> The attached patch adds support for a clang -Wcast-qual option. Semantic is<br>
> compatible with the gcc one.<br>
<br>
</div>Hello Igor,<br>
<br>
Thank you for working on this!<br>
<br>
+  char** x = 0;<br>
+  const char** y = (const char**)x; // expected-warning {{cast<br>
discards qualifiers from pointer target type}}<br>
<br>
I think the diagnostic message is a bit incorrect in this case.<br>
<span><font color="#888888"><br>
Dmitri<br>
<br>
--<br>
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if<br>
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>>*/<br>
</font></span></blockquote></div><br></div></div></div>
</div><br>