1*5845688eSKadir Cetinkaya // Check that clang-diagnostic pragmas take precedence over suppression mapping. 2*5845688eSKadir Cetinkaya // RUN: %clang -cc1 -verify -Wformat=2 --warning-suppression-mappings=%S/Inputs/suppression-mapping.txt -fsyntax-only %s 3*5845688eSKadir Cetinkaya 4*5845688eSKadir Cetinkaya __attribute__((__format__ (__printf__, 1, 2))) 5*5845688eSKadir Cetinkaya void format_err(const char* const pString, ...); 6*5845688eSKadir Cetinkaya 7*5845688eSKadir Cetinkaya void foo() { 8*5845688eSKadir Cetinkaya const char *x; 9*5845688eSKadir Cetinkaya format_err(x); // Warning suppressed here. 10*5845688eSKadir Cetinkaya // check that pragmas take precedence 11*5845688eSKadir Cetinkaya #pragma clang diagnostic push 12*5845688eSKadir Cetinkaya #pragma clang diagnostic warning "-Wformat=2" 13*5845688eSKadir Cetinkaya format_err(x); // expected-warning{{format string is not a string literal (potentially insecure)}} \ 14*5845688eSKadir Cetinkaya // expected-note{{treat the string as an argument to avoid this}} 15*5845688eSKadir Cetinkaya #pragma clang diagnostic pop 16*5845688eSKadir Cetinkaya } 17