xref: /llvm-project/clang/test/SemaOpenCL/printf-format-string-warnings.cl (revision 20d93267e18463292d54791f3c19211a85b27227)
1*20d93267SSven van Haastregt// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header -fdeclare-opencl-builtins
2a0115129SMatt Arsenault
358fc8082SMatt Arsenault// Make sure warnings are produced based on printf format strings.
4a0115129SMatt Arsenault
5a0115129SMatt Arsenaultkernel void format_string_warnings(__constant char* arg) {
6a0115129SMatt Arsenault
758fc8082SMatt Arsenault  printf("%d", arg); // expected-warning {{format specifies type 'int' but the argument has type '__constant char *'}}
8a0115129SMatt Arsenault
958fc8082SMatt Arsenault  printf("not enough arguments %d %d", 4); // expected-warning {{more '%' conversions than data arguments}}
10a0115129SMatt Arsenault
1158fc8082SMatt Arsenault  printf("too many arguments", 4); // expected-warning {{data argument not used by format string}}
12a0115129SMatt Arsenault}
13