[libcxx-commits] [libcxx] [libc++] Diagnose passing null pointers to a bunch of APIs (PR #148585)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jul 16 07:22:40 PDT 2025


================
@@ -1095,6 +1095,20 @@ typedef __char32_t char32_t;
 #    define _LIBCPP_DIAGNOSE_WARNING(...)
 #  endif
 
+#  if __has_attribute(__diagnose_if__) && !defined(_LIBCPP_APPLE_CLANG_VER) &&                                         \
+      (!defined(_LIBCPP_CLANG_VER) || _LIBCPP_CLANG_VER >= 2001)
+#    define _LIBCPP_DIAGNOSE_IF(...) __attribute__((__diagnose_if__(__VA_ARGS__)))
+#  else
+#    define _LIBCPP_DIAGNOSE_IF(...)
+#  endif
+
+#  define _LIBCPP_DIAGNOSE_NULLPTR_IF(condition, condition_description)                                                \
+    _LIBCPP_DIAGNOSE_IF(                                                                                               \
+        condition,                                                                                                     \
+        "null passed to calle that requires a non-null argument" condition_description,                                \
----------------
ldionne wrote:

```suggestion
        "null passed to callee that requires a non-null argument" condition_description,                                \
```

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


More information about the libcxx-commits mailing list