<div dir="ltr">Yeah, I think you are right,<div>my question was mostly about if it's on purpose that <span style="font-size:12.8px"> </span><a class="gmail-m_2250955971894881811m_1074346319558311326gmail-code" href="https://clang.llvm.org/doxygen/classclang_1_1TargetInfo.html" target="_blank" style="font-size:13px;color:rgb(70,101,162);text-decoration-line:none;font-family:monospace,fixed;white-space:pre-wrap;background-color:rgb(251,252,253)">TargetInfo</a> and ASTContext don't expose this information (like they do for size_t).</div><div>I mean that there is <span style="font-size:12.8px">getSizeType method, but there isn't </span><span style="font-size:12.8px">getSignedSizeType and I'm wondering if it's expected. </span></div><div><span style="font-size:12.8px">If it's not on purpose  - what would people say to adding it ? or what we should use instead.</span></div><div><span style="font-size:12.8px">Many thanks for the reply,</span></div><div><span style="font-size:12.8px">Kind regards,</span></div><div><span style="font-size:12.8px">Alexander Shaposhnikov</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 12, 2017 at 4:10 AM, Alex L <span dir="ltr"><<a href="mailto:arphaman@gmail.com" target="_blank">arphaman@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 dir="ltr">The C11 standard has the following paragraph for 'z':<div><br><div>Specifies that a following d, i, o, u, x, or X conversion specifier applies to a size_t or the corresponding signed integer type argument; or that a following n conversion specifier applies to a pointer to a signed integer type corresponding to size_t argument.<br></div></div><div><br></div><div>If I interpret it correctly (please correct me if I'm wrong) then this means that for '%zd' you can use a type that identical to the target's SizeType, except that it has to be signed.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Alex</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 12 July 2017 at 03:01, Александр Шапошников <span dir="ltr"><<a href="mailto:alexander.v.shaposhnikov@gmail.com" target="_blank">alexander.v.shaposhnikov@<wbr>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 class="m_2583063698370947840HOEnZb"><div class="m_2583063698370947840h5"><div dir="ltr"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 11, 2017 at 5:19 PM, Alexander Shaposhnikov <span dir="ltr"><<a href="mailto:shal1t712@gmail.com" target="_blank">shal1t712@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 dir="ltr">Hi, <div>I have a question regarding the right way to get CanQualType/QualType for "ssize_t".</div><div><br></div><div>The class <a class="m_2583063698370947840m_-4206623016591368973m_1074346319558311326gmail-code" href="https://clang.llvm.org/doxygen/classclang_1_1ASTContext.html#a7c89acd533ffea38c5011885d8d029e4" style="font-size:13px;color:rgb(70,101,162);text-decoration-line:none;font-family:monospace,fixed;white-space:pre-wrap;background-color:rgb(251,252,253)" target="_blank">ASTContext</a> (<a href="https://clang.llvm.org/doxygen/ASTContext_8cpp_source.html#l04524" target="_blank">https://clan<wbr>g.llvm.org/doxygen/ASTContext_<wbr>8cpp_source.html#l04524</a>) </div><div>has a number of methods: getIntMaxType, getUintMaxType, getSizeType etc but if i am not mistaken it doesn't have the counterpart for "ssize_t". </div><div>After looking at the implementation of those methods i see that it's missing in the class <a class="m_2583063698370947840m_-4206623016591368973m_1074346319558311326gmail-code" href="https://clang.llvm.org/doxygen/classclang_1_1TargetInfo.html" style="font-size:13px;color:rgb(70,101,162);text-decoration-line:none;font-family:monospace,fixed;white-space:pre-wrap;background-color:rgb(251,252,253)" target="_blank">TargetInfo</a> either. <a href="https://clang.llvm.org/doxygen/include_2clang_2Basic_2TargetInfo_8h_source.html#l00228" target="_blank">https://clang.llvm.org/doxygen<wbr>/include_2clang_2Basic_2Target<wbr>Info_8h_source.html#l00228</a> .</div><div><br></div><div>Some context:</div><div><br></div><div>in PrintfSpecifier::getArgType (in ./lib/Analysis/PrintfForma<wbr>tString.cpp)</div><div>there is a FIXME:</div><div><br></div><div>     case LengthModifier::AsSizeT:</div><div>         return ArgType(); // FIXME: ssize_t</div><div><br></div><div>as a result Clang doesn't analyze the format string "%zd" correctly</div><div>and doesn't warn on the following (broken) code:</div><div><br></div><div>    int main() {</div><div>      printf("%zd", 12.2);</div><div>      return 0;</div><div>    }</div><div><br></div><div>Kind regards, </div><span class="m_2583063698370947840m_-4206623016591368973HOEnZb"><font color="#888888"><div>Alexander Shaposhnikov</div></font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>