diff options
Diffstat (limited to 'test/Analysis/valist-as-lazycompound.c')
-rw-r--r-- | test/Analysis/valist-as-lazycompound.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/Analysis/valist-as-lazycompound.c b/test/Analysis/valist-as-lazycompound.c new file mode 100644 index 000000000000..2fbd4cb76f48 --- /dev/null +++ b/test/Analysis/valist-as-lazycompound.c @@ -0,0 +1,21 @@ +// RUN: %clang_analyze_cc1 -triple gcc-linaro-arm-linux-gnueabihf -analyzer-checker=core,valist.Uninitialized,valist.CopyToSelf -analyzer-output=text -analyzer-store=region -verify %s +// expected-no-diagnostics + +typedef unsigned int size_t; +typedef __builtin_va_list __gnuc_va_list; +typedef __gnuc_va_list va_list; + +extern int vsprintf(char *__restrict __s, + const char *__restrict __format, __gnuc_va_list + __arg); + +void _dprintf(const char *function, int flen, int line, int level, + const char *prefix, const char *fmt, ...) { + char raw[10]; + int err; + va_list ap; + + __builtin_va_start(ap, fmt); + err = vsprintf(raw, fmt, ap); + __builtin_va_end(ap); +} |