diff options
author | Thierry Reding <treding@nvidia.com> | 2014-01-22 12:06:51 +0100 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2014-04-17 16:21:40 +0200 |
commit | 44b08c0ddf7ced99a5914421f18b269a1dcaafae (patch) | |
tree | 606eddc88e391a7c1f32f9c2c2cec162ceab6cd3 | |
parent | 7974b539d2b46167972b9109046a45dbe852ae4c (diff) | |
download | libdrm-44b08c0ddf7ced99a5914421f18b269a1dcaafae.tar.gz libdrm-44b08c0ddf7ced99a5914421f18b269a1dcaafae.tar.bz2 libdrm-44b08c0ddf7ced99a5914421f18b269a1dcaafae.zip |
Mark functions printf-like where possible
These functions all take a format string and either a list of variable
arguments or a va_list. Use the new DRM_PRINTFLIKE macro to tell the
compiler about it so that the arguments can be checked against the
format string.
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r-- | intel/intel_decode.c | 7 | ||||
-rw-r--r-- | tests/drmstat.c | 2 | ||||
-rw-r--r-- | xf86drm.c | 10 | ||||
-rw-r--r-- | xf86drm.h | 2 |
4 files changed, 11 insertions, 10 deletions
diff --git a/intel/intel_decode.c b/intel/intel_decode.c index c0a0cafc..61239dd9 100644 --- a/intel/intel_decode.c +++ b/intel/intel_decode.c @@ -29,6 +29,7 @@ #include <stdarg.h> #include <string.h> +#include "xf86drm.h" #include "intel_chipset.h" #include "intel_bufmgr.h" @@ -104,11 +105,7 @@ static float int_as_float(uint32_t intval) return uval.f; } -static void -instr_out(struct drm_intel_decode *ctx, unsigned int index, - const char *fmt, ...) __attribute__((format(__printf__, 3, 4))); - -static void +static void DRM_PRINTFLIKE(3, 4) instr_out(struct drm_intel_decode *ctx, unsigned int index, const char *fmt, ...) { diff --git a/tests/drmstat.c b/tests/drmstat.c index 345b8d2c..c51cbc6c 100644 --- a/tests/drmstat.c +++ b/tests/drmstat.c @@ -425,7 +425,7 @@ int main(int argc, char **argv) return r; } -void +void DRM_PRINTFLIKE(4, 0) xf86VDrvMsgVerb(int scrnIndex, int type, int verb, const char *format, va_list args) { @@ -104,12 +104,16 @@ void drmSetServerInfo(drmServerInfoPtr info) * This function is a wrapper around vfprintf(). */ -static int drmDebugPrint(const char *format, va_list ap) +static int DRM_PRINTFLIKE(1, 0) +drmDebugPrint(const char *format, va_list ap) { return vfprintf(stderr, format, ap); } -static int (*drm_debug_print)(const char *format, va_list ap) = drmDebugPrint; +typedef int DRM_PRINTFLIKE(1, 0) (*debug_msg_func_t)(const char *format, + va_list ap); + +static debug_msg_func_t drm_debug_print = drmDebugPrint; void drmMsg(const char *format, ...) @@ -129,7 +133,7 @@ drmMsg(const char *format, ...) } void -drmSetDebugMsgFunction(int (*debug_msg_ptr)(const char *format, va_list ap)) +drmSetDebugMsgFunction(debug_msg_func_t debug_msg_ptr) { drm_debug_print = debug_msg_ptr; } @@ -704,7 +704,7 @@ extern int drmSLLookupNeighbors(void *l, unsigned long key, extern int drmOpenOnce(void *unused, const char *BusID, int *newlyopened); extern void drmCloseOnce(int fd); -extern void drmMsg(const char *format, ...); +extern void drmMsg(const char *format, ...) DRM_PRINTFLIKE(1, 2); extern int drmSetMaster(int fd); extern int drmDropMaster(int fd); |