/* { dg-do compile } */ /* { dg-options "-O2 -g" } */ #include #include #include #define DEBUG_BUFFER_SIZE 80 int unifi_debug = 5; void unifi_trace (void* ospriv, int level, const char *fmt, ...) { static char s[DEBUG_BUFFER_SIZE]; va_list args; unsigned int len; if (!ospriv) return; if (unifi_debug >= level) { va_start (args, fmt); len = vsnprintf (&(s)[0], (DEBUG_BUFFER_SIZE), fmt, args); va_end (args); if (len >= DEBUG_BUFFER_SIZE) { (s)[DEBUG_BUFFER_SIZE - 2] = '\n'; (s)[DEBUG_BUFFER_SIZE - 1] = 0; } printf ("%s", s); } }