Matt Arsenault | a011512 | 2018-10-03 02:01:19 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header |
| 2 | |
Matt Arsenault | 58fc808 | 2019-01-29 20:49:54 +0000 | [diff] [blame] | 3 | // Make sure warnings are produced based on printf format strings. |
Matt Arsenault | a011512 | 2018-10-03 02:01:19 +0000 | [diff] [blame] | 4 | |
| 5 | kernel void format_string_warnings(__constant char* arg) { |
| 6 | |
Matt Arsenault | 58fc808 | 2019-01-29 20:49:54 +0000 | [diff] [blame] | 7 | printf("%d", arg); // expected-warning {{format specifies type 'int' but the argument has type '__constant char *'}} |
Matt Arsenault | a011512 | 2018-10-03 02:01:19 +0000 | [diff] [blame] | 8 | |
Matt Arsenault | 58fc808 | 2019-01-29 20:49:54 +0000 | [diff] [blame] | 9 | printf("not enough arguments %d %d", 4); // expected-warning {{more '%' conversions than data arguments}} |
Matt Arsenault | a011512 | 2018-10-03 02:01:19 +0000 | [diff] [blame] | 10 | |
Matt Arsenault | 58fc808 | 2019-01-29 20:49:54 +0000 | [diff] [blame] | 11 | printf("too many arguments", 4); // expected-warning {{data argument not used by format string}} |
Matt Arsenault | a011512 | 2018-10-03 02:01:19 +0000 | [diff] [blame] | 12 | } |