/* APPLE LOCAL file radar 5096648 */
#import <CoreFoundation/CFString.h>
/* Test for implementation of (__format__ (__CFString__, m, n)) attribute */
/* { dg-options "-Wformat -Wformat-security" } */
/* { dg-do compile { target *-*-darwin* } } */

#define SECURITY_ATTR    __attribute__ ((__format__ (__CFString__, 1, 2)))

extern void CFLog(CFStringRef format, ...) SECURITY_ATTR;

#undef CFSTR
#define CFSTR(cStr)  ((CFStringRef) __builtin___CFStringMakeConstantString ("" cStr "")) /* { dg-warning "expanded from macro" } */

int d;
const char *string;
int main()
{
    CFStringRef foo;
        CFLog (foo); /* { dg-warning "format string is not a string literal" } */
    CFLog (foo, d); // ok
    CFLog(CFSTR("foo is %@"), CFSTR("foo is %@"), foo); /* { dg-warning "data argument not used by format string" } */
    CFLog(CFSTR("foo is %@"), CFSTR("foo is %@")); // OK
    CFLog(CFSTR("foo is %@"), CFSTR("foo is %@"), foo);  /* { dg-warning "data argument not used by format string" } */
    CFLog(CFSTR("foo is %@")); /* { dg-warning "more '%' conversions than data arguments" } */
}

