[clang] Optimize -Wunsafe-buffer-usage. (PR #124554)

via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 29 02:17:37 PST 2025


================
@@ -31,27 +35,34 @@
 #define FIXABLE_GADGET(name) GADGET(name)
 #endif
 
+/// A subset of the safe gadgets that may return multiple results.
+#ifndef FIXABLE_GADGET_MULTY_RES
+#define FIXABLE_GADGET_MULTY_RES(name) GADGET(name)
+#endif
+
 WARNING_GADGET(Increment)
 WARNING_GADGET(Decrement)
-WARNING_GADGET(ArraySubscript)
 WARNING_GADGET(PointerArithmetic)
 WARNING_GADGET(UnsafeBufferUsageAttr)
-WARNING_GADGET(UnsafeBufferUsageCtorAttr)
 WARNING_GADGET(DataInvocation)
-WARNING_OPTIONAL_GADGET(UnsafeLibcFunctionCall)
-WARNING_OPTIONAL_GADGET(SpanTwoParamConstructor) // Uses of `std::span(arg0, arg1)`
+WARNING_OPTIONAL_GADGET_CTX(ArraySubscript)
+WARNING_OPTIONAL_GADGET_CTX(UnsafeBufferUsageCtorAttr)
+WARNING_OPTIONAL_GADGET_HANDLER(UnsafeLibcFunctionCall)
+WARNING_OPTIONAL_GADGET_HANDLER(SpanTwoParamConstructor) // Uses of `std::span(arg0, arg1)`
 FIXABLE_GADGET(ULCArraySubscript)          // `DRE[any]` in an Unspecified Lvalue Context
 FIXABLE_GADGET(DerefSimplePtrArithFixable)
 FIXABLE_GADGET(PointerDereference)
-FIXABLE_GADGET(UPCAddressofArraySubscript) // '&DRE[any]' in an Unspecified Pointer Context
-FIXABLE_GADGET(UPCStandalonePointer)
-FIXABLE_GADGET(UPCPreIncrement)            // '++Ptr' in an Unspecified Pointer Context
-FIXABLE_GADGET(UUCAddAssign)            // 'Ptr += n' in an Unspecified Untyped Context
-FIXABLE_GADGET(PtrToPtrAssignment)
-FIXABLE_GADGET(CArrayToPtrAssignment)
+FIXABLE_GADGET_MULTY_RES(UPCAddressofArraySubscript) // '&DRE[any]' in an Unspecified Pointer Context
----------------
ivanaivanovska wrote:

Done. 

https://github.com/llvm/llvm-project/pull/124554


More information about the cfe-commits mailing list