ziqingluo-90 added inline comments.
================ Comment at: clang/lib/Analysis/UnsafeBufferUsage.cpp:30-39 + return anyOf( + hasType(pointerType()), + hasType(autoType( + hasDeducedType(hasUnqualifiedDesugaredType(pointerType())))), + // DecayedType, e.g., array type in formal parameter decl + hasType(decayedType(hasDecayedType(pointerType()))), + // ElaboratedType, e.g., typedef ---------------- ================ Comment at: clang/lib/Analysis/UnsafeBufferUsage.cpp:31 + return anyOf( + hasType(pointerType()), + hasType(autoType( ---------------- aaron.ballman wrote: > I shudder to ask this question, but ... pointer to member types? My understanding is that a pointer-to-member type pointer cannot be used to do buffer access, i.e., one cannot do pointer addition on it. So we do not warn pointer-to-member themselves. In cases where the member type is a pointer, it has been covered. I have added a test involving pointer to member types. ================ Comment at: clang/lib/Analysis/UnsafeBufferUsage.cpp:35 + // DecayedType, e.g., array type in formal parameter decl + hasType(decayedType(hasDecayedType(pointerType()))), + // ElaboratedType, e.g., typedef ---------------- aaron.ballman wrote: > hmmm, do you need to check `hasDecayedType(pointerType())`? What decay type > *isn't* a pointer type? you are right! Thanks for pointing this out. ================ Comment at: clang/test/SemaCXX/warn-unsafe-buffer-usage.cpp:164 +} + +#endif ---------------- CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138318/new/ https://reviews.llvm.org/D138318 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits