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

Reply via email to