[cfe-dev] CanQualType for ssize_t
Alexander Shaposhnikov via cfe-dev
cfe-dev at lists.llvm.org
Tue Jul 11 17:19:26 PDT 2017
Hi,
I have a question regarding the right way to get CanQualType/QualType for
"ssize_t".
The class ASTContext
<https://clang.llvm.org/doxygen/classclang_1_1ASTContext.html#a7c89acd533ffea38c5011885d8d029e4>
(https://clang.llvm.org/doxygen/ASTContext_8cpp_source.html#l04524)
has a number of methods: getIntMaxType, getUintMaxType, getSizeType etc but
if i am not mistaken it doesn't have the counterpart for "ssize_t".
After looking at the implementation of those methods i see that it's
missing in the class TargetInfo
<https://clang.llvm.org/doxygen/classclang_1_1TargetInfo.html> either.
https://clang.llvm.org/doxygen/include_2clang_2Basic_2TargetInfo_8h_source.html#l00228
.
Some context:
in PrintfSpecifier::getArgType (in ./lib/Analysis/PrintfFormatString.cpp)
there is a FIXME:
case LengthModifier::AsSizeT:
return ArgType(); // FIXME: ssize_t
as a result Clang doesn't analyze the format string "%zd" correctly
and doesn't warn on the following (broken) code:
int main() {
printf("%zd", 12.2);
return 0;
}
Kind regards,
Alexander Shaposhnikov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170711/428a9de6/attachment.html>
More information about the cfe-dev
mailing list