poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 1/3] libpoke: use nonnull attribute for pk_compile_* functions


From: Mohammad-Reza Nabipoor
Subject: [PATCH v2 1/3] libpoke: use nonnull attribute for pk_compile_* functions
Date: Wed, 4 Oct 2023 00:36:17 +0200

2023-10-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

        * libpoke/libpoke.h (LIBPOKE_NONNULL): New macro for nonnull attribute
        for functions.
        (pk_compile_file): Use `LIBPOKE_NONNULL'.
        (pk_compile_buffer): Likewise.
        (pk_compile_buffer_with_loc): Likewise.
        (pk_compile_statement): Likewise.
        (pk_compile_statement_with_loc): Likewise.
        (pk_compile_expression): Likewise.
        (pk_compile_expression_with_loc): Likewise.
---
 ChangeLog         | 12 ++++++++++++
 libpoke/libpoke.h | 27 ++++++++++++++++++++-------
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 23b2a8f3..a6d2a203 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2023-10-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+
+       * libpoke/libpoke.h (LIBPOKE_NONNULL): New macro for nonnull attribute
+       for functions.
+       (pk_compile_file): Use `LIBPOKE_NONNULL'.
+       (pk_compile_buffer): Likewise.
+       (pk_compile_buffer_with_loc): Likewise.
+       (pk_compile_statement): Likewise.
+       (pk_compile_statement_with_loc): Likewise.
+       (pk_compile_expression): Likewise.
+       (pk_compile_expression_with_loc): Likewise.
+
 2023-09-25  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
 
        * libpoke/libpoke.c (pk_compiler_new_with_flags): Add checks for
diff --git a/libpoke/libpoke.h b/libpoke/libpoke.h
index 83b51c50..2f0b3324 100644
--- a/libpoke/libpoke.h
+++ b/libpoke/libpoke.h
@@ -29,6 +29,13 @@
 #define LIBPOKE_API
 #endif
 
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 3) > 3)                \
+    || (defined __clang__ && __clang_major__ >= 3)
+#define LIBPOKE_NONNULL(...) __attribute__ ((nonnull (__VA_ARGS__)))
+#else
+#define LIBPOKE_NONNULL(...)
+#endif
+
 typedef struct _pk_compiler *pk_compiler;
 typedef struct _pk_ios *pk_ios;
 typedef uint64_t pk_val;
@@ -169,7 +176,8 @@ int pk_errno (pk_compiler pkc) LIBPOKE_API;
    return PK_OK.  */
 
 int pk_compile_file (pk_compiler pkc, const char *filename,
-                     pk_val *exit_exception) LIBPOKE_API;
+                     pk_val *exit_exception)
+    LIBPOKE_API LIBPOKE_NONNULL (1, 2, 3);
 
 /* Compile and execute a Poke program from a memory buffer.
 
@@ -186,7 +194,8 @@ int pk_compile_file (pk_compiler pkc, const char *filename,
    PK_NULL otherwise.  */
 
 int pk_compile_buffer (pk_compiler pkc, const char *buffer,
-                       const char **end, pk_val *exit_exception) LIBPOKE_API;
+                       const char **end, pk_val *exit_exception)
+    LIBPOKE_API LIBPOKE_NONNULL (1, 2, 4);
 
 /* Like pk_compile_buffer, but gets the following extra arguments.
 
@@ -201,7 +210,7 @@ int pk_compile_buffer_with_loc (pk_compiler pkc, const char 
*buffer,
                                 const char *source,
                                 uint32_t line, uint32_t column,
                                 const char **end, pk_val *exit_exception)
-  LIBPOKE_API;
+  LIBPOKE_API LIBPOKE_NONNULL (1, 2, 7);
 
 /* Like pk_compile_buffer but compile and execute a single Poke
    statement, which may evaluate to a value if it is an "expression
@@ -216,7 +225,8 @@ int pk_compile_buffer_with_loc (pk_compiler pkc, const char 
*buffer,
 
 int pk_compile_statement (pk_compiler pkc, const char *buffer,
                           const char **end, pk_val *val,
-                          pk_val *exit_exception) LIBPOKE_API;
+                          pk_val *exit_exception)
+    LIBPOKE_API LIBPOKE_NONNULL (1, 2, 5);
 
 /* Like pk_compile_statement, but gets the following extra arguments.
 
@@ -231,7 +241,8 @@ int pk_compile_statement_with_loc (pk_compiler pkc, const 
char *buffer,
                                    const char *source,
                                    uint32_t line, uint32_t column,
                                    const char **end, pk_val *val,
-                                   pk_val *exit_exception) LIBPOKE_API;
+                                   pk_val *exit_exception)
+    LIBPOKE_API LIBPOKE_NONNULL (1, 2, 8);
 
 /* Like pk_compile_buffer but compile and execute a single Poke
    expression, which evaluates to a value.
@@ -247,7 +258,8 @@ int pk_compile_statement_with_loc (pk_compiler pkc, const 
char *buffer,
 
 int pk_compile_expression (pk_compiler pkc, const char *buffer,
                            const char **end, pk_val *val,
-                           pk_val *exit_exception) LIBPOKE_API;
+                           pk_val *exit_exception)
+    LIBPOKE_API LIBPOKE_NONNULL (1, 2, 5);
 
 /* Like pk_compile_expression, but gets the following extra arguments.
 
@@ -262,7 +274,8 @@ int pk_compile_expression_with_loc (pk_compiler pkc, const 
char *buffer,
                                     const char *source,
                                     uint32_t line, uint32_t column,
                                     const char **end, pk_val *val,
-                                    pk_val *exit_exception) LIBPOKE_API;
+                                    pk_val *exit_exception)
+    LIBPOKE_API LIBPOKE_NONNULL (1, 2, 8);
 
 /* Load a module using the given compiler.
 
-- 
2.42.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]