]> granicus.if.org Git - php/commitdiff
Add format attribute to a number of functions
authorSascha Schumann <sas@php.net>
Thu, 28 Aug 2003 16:41:20 +0000 (16:41 +0000)
committerSascha Schumann <sas@php.net>
Thu, 28 Aug 2003 16:41:20 +0000 (16:41 +0000)
Kill a few warnings

Zend/zend.h
Zend/zend_alloc.c
Zend/zend_builtin_functions.c
Zend/zend_compile.c
Zend/zend_execute.c

index fea87092f3cfaac059faa2b20aac9022584a35aa..5b0ae62947f03c1fbcda017a3c166c3cfaaf8f48 100644 (file)
@@ -158,6 +158,12 @@ char *alloca ();
 # define ZEND_ATTRIBUTE_MALLOC
 #endif
 
+#if ZEND_GCC_VERSION >= 2007
+# define ZEND_ATTRIBUTE_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first)))
+#else
+# define ZEND_ATTRIBUTE_FORMAT(type, idx, first)
+#endif
+
 #if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(ZEND_WIN32)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX))
 # define do_alloca(p) alloca(p)
 # define free_alloca(p)
@@ -341,8 +347,8 @@ struct _zend_class_entry {
 
 #include "zend_stream.h"
 typedef struct _zend_utility_functions {
-       void (*error_function)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
-       int (*printf_function)(const char *format, ...);
+       void (*error_function)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_FORMAT(printf, 4, 0);
+       int (*printf_function)(const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 1, 2);
        int (*write_function)(const char *str, uint str_length);
        FILE *(*fopen_function)(const char *filename, char **opened_path);
        void (*message_handler)(long message, void *data);
@@ -442,7 +448,7 @@ ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int in
 ZEND_API void zend_print_zval_r(zval *expr, int indent TSRMLS_DC);
 ZEND_API void zend_print_flat_zval_r(zval *expr TSRMLS_DC);
 ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent TSRMLS_DC);
-ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...);
+ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
 
 void zend_activate(TSRMLS_D);
 void zend_deactivate(TSRMLS_D);
@@ -479,18 +485,18 @@ ZEND_API void free_estring(char **str_p);
 
 
 BEGIN_EXTERN_C()
-extern ZEND_API int (*zend_printf)(const char *format, ...);
+extern ZEND_API int (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 1, 2);
 extern ZEND_API zend_write_func_t zend_write;
 extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path);
 extern ZEND_API void (*zend_block_interruptions)(void);
 extern ZEND_API void (*zend_unblock_interruptions)(void);
 extern ZEND_API void (*zend_ticks_function)(int ticks);
-extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
+extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_FORMAT(printf, 4, 0);
 extern void (*zend_on_timeout)(int seconds TSRMLS_DC);
 extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
 
 
-ZEND_API void zend_error(int type, const char *format, ...);
+ZEND_API void zend_error(int type, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
 
 void zenderror(char *error);
 
index 4f02af00d4386fd765a8f519c564be7a6a7093d8..13e74e814d78941475e25906e16e07f9943003ea 100644 (file)
@@ -470,8 +470,12 @@ ZEND_API void start_memory_manager(TSRMLS_D)
 
 ZEND_API void shutdown_memory_manager(int silent, int clean_cache TSRMLS_DC)
 {
+#if ZEND_DEBUG || !defined(ZEND_MM)
        zend_mem_header *p, *t;
+#endif
+#if ZEND_DEBUG
        zend_uint grand_total_leaks=0;
+#endif
 
 #if defined(ZEND_MM) && !ZEND_DEBUG
        if (clean_cache) {
index 5c9b9053235e7c22391798954abc0fe8c2ddd35f..c0786f8ff3efdd4371429f7ce2a9e34e6da5d564 100644 (file)
@@ -245,7 +245,7 @@ ZEND_FUNCTION(func_get_arg)
        arg_count = (ulong) *p;
 
        if (requested_offset>=arg_count) {
-               zend_error(E_WARNING, "func_get_arg():  Argument %d not passed to function", requested_offset);
+               zend_error(E_WARNING, "func_get_arg():  Argument %ld not passed to function", requested_offset);
                RETURN_FALSE;
        }
 
@@ -1461,6 +1461,7 @@ ZEND_FUNCTION(debug_print_backtrace)
                        lineno = ptr->opline->lineno;
                } else {
                        filename = NULL;
+                       lineno = 0;
                }
 
                function_name = ptr->function_state.function->common.function_name;
@@ -1516,6 +1517,7 @@ ZEND_FUNCTION(debug_print_backtrace)
                                array_init(arg_array);
                                add_next_index_string(arg_array, include_filename, 1);
                        }
+                       call_type = NULL;
                }
                zend_printf("#%-2d ", indent);
                if (class_name) {
index 30c36d92a2ea8c47c0e55a040430183a241959e6..7c1f005bb09c889c169c91fd6abf1063a2965146 100644 (file)
@@ -1352,8 +1352,7 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC)
                                        "If you would like to enable call-time pass-by-reference, you can set "
                                        "allow_call_time_pass_reference to true in your INI file.  "
                                        "However, future versions may not support this any longer. ",
-                                       (function_ptr?function_ptr->common.function_name:"[runtime function name]"),
-                                       offset+1);
+                                       (function_ptr?function_ptr->common.function_name:"[runtime function name]"));
        }
 
        if (function_ptr) {
index 9f3b75afd9e26d419f8e1ace537165ad50a4b0d4..3fed8b5264b324af9e8f840f6effb9457ceb88b6 100644 (file)
@@ -789,13 +789,13 @@ fetch_string_dim:
                                if (zend_hash_index_find(ht, index, (void **) &retval) == FAILURE) {
                                        switch (type) {
                                                case BP_VAR_R: 
-                                                       zend_error(E_NOTICE,"Undefined offset:  %d", index);
+                                                       zend_error(E_NOTICE,"Undefined offset:  %ld", index);
                                                        /* break missing intentionally */
                                                case BP_VAR_IS:
                                                        retval = &EG(uninitialized_zval_ptr);
                                                        break;
                                                case BP_VAR_RW:
-                                                       zend_error(E_NOTICE,"Undefined offset:  %d", index);
+                                                       zend_error(E_NOTICE,"Undefined offset:  %ld", index);
                                                        /* break missing intentionally */
                                                case BP_VAR_W: {
                                                        zval *new_zval = &EG(uninitialized_zval);
@@ -2901,7 +2901,7 @@ int zend_recv_handler(ZEND_OPCODE_HANDLER_ARGS)
 
        if (zend_ptr_stack_get_arg(arg_num, (void **) &param TSRMLS_CC)==FAILURE) {
                zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL TSRMLS_CC);
-               zend_error(E_WARNING, "Missing argument %d for %s()\n", EX(opline)->op1.u.constant.value.lval, get_active_function_name(TSRMLS_C));
+               zend_error(E_WARNING, "Missing argument %ld for %s()\n", EX(opline)->op1.u.constant.value.lval, get_active_function_name(TSRMLS_C));
                if (EX(opline)->result.op_type == IS_VAR) {
                        PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr);
                }