From: <svn...@op...> - 2009-11-10 23:18:54
|
Author: cdfrey Date: Wed Nov 11 00:18:28 2009 New Revision: 5955 URL: http://www.opensync.org/changeset/5955 Log: Added GCC printf format string / arg checking to printf-like functions Modified: trunk/opensync/common/opensync_error.h trunk/opensync/common/opensync_string.h trunk/opensync/debug/opensync_trace.h trunk/opensync/opensync.h trunk/opensync/plugin/opensync_context.h Modified: trunk/opensync/common/opensync_error.h ============================================================================== --- trunk/opensync/common/opensync_error.h Tue Nov 10 17:55:01 2009 (r5954) +++ trunk/opensync/common/opensync_error.h Wed Nov 11 00:18:28 2009 (r5955) @@ -89,7 +89,7 @@ * @param format The message * */ -OSYNC_EXPORT void osync_error_set(OSyncError **error, OSyncErrorType type, const char *format, ...); +OSYNC_EXPORT void osync_error_set(OSyncError **error, OSyncErrorType type, const char *format, ...) GCC_FORMAT_CHECK(3, 4); /** @brief This will return a string describing the type of the error * Modified: trunk/opensync/common/opensync_string.h ============================================================================== --- trunk/opensync/common/opensync_string.h Tue Nov 10 17:55:01 2009 (r5954) +++ trunk/opensync/common/opensync_string.h Wed Nov 11 00:18:28 2009 (r5955) @@ -58,7 +58,7 @@ * @returns The duplicate string, caller is responsible for freeing. * */ -OSYNC_EXPORT char *osync_strdup_printf(const char *format, ...); +OSYNC_EXPORT char *osync_strdup_printf(const char *format, ...) GCC_FORMAT_CHECK(1, 2); /** @brief Creates a random string * Modified: trunk/opensync/debug/opensync_trace.h ============================================================================== --- trunk/opensync/debug/opensync_trace.h Tue Nov 10 17:55:01 2009 (r5954) +++ trunk/opensync/debug/opensync_trace.h Wed Nov 11 00:18:28 2009 (r5955) @@ -67,7 +67,7 @@ * @param message The message to save * */ -OSYNC_EXPORT void osync_trace(OSyncTraceType type, const char *message, ...); +OSYNC_EXPORT void osync_trace(OSyncTraceType type, const char *message, ...) GCC_FORMAT_CHECK(2, 3); /*! @brief Disable tracing * Modified: trunk/opensync/opensync.h ============================================================================== --- trunk/opensync/opensync.h Tue Nov 10 17:55:01 2009 (r5954) +++ trunk/opensync/opensync.h Wed Nov 11 00:18:28 2009 (r5955) @@ -67,6 +67,12 @@ #define OSYNC_TEST_EXPORT #endif +#if __GNUC__ +#define GCC_FORMAT_CHECK(a,b) __attribute__ ((format(printf, a, b))) +#else +#define GCC_FORMAT_CHECK(a,b) +#endif + OPENSYNC_BEGIN_DECLS /** Modified: trunk/opensync/plugin/opensync_context.h ============================================================================== --- trunk/opensync/plugin/opensync_context.h Tue Nov 10 17:55:01 2009 (r5954) +++ trunk/opensync/plugin/opensync_context.h Wed Nov 11 00:18:28 2009 (r5955) @@ -44,7 +44,7 @@ OSYNC_EXPORT void osync_context_set_slowsync_callback(OSyncContext *context, OSyncContextSlowSyncFn slowsync_func, void *userdata); OSYNC_EXPORT void osync_context_set_warning_callback(OSyncContext *context, OSyncContextCallbackFn warning); -OSYNC_EXPORT void osync_context_report_error(OSyncContext *context, OSyncErrorType type, const char *format, ...); +OSYNC_EXPORT void osync_context_report_error(OSyncContext *context, OSyncErrorType type, const char *format, ...) GCC_FORMAT_CHECK(3, 4); OSYNC_EXPORT void osync_context_report_success(OSyncContext *context); OSYNC_EXPORT void osync_context_report_osyncerror(OSyncContext *context, OSyncError *error); |