<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri,Helvetica,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">It seems like it caused a bug:</p>
<p style="margin-top:0;margin-bottom:0"><a href="https://bugs.llvm.org/show_bug.cgi?id=39486" class="OWAAutoLink">https://bugs.llvm.org/show_bug.cgi?id=39486</a><br>
</p>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>From:</b> cfe-commits <cfe-commits-bounces@lists.llvm.org> on behalf of Matt Arsenault via cfe-commits <cfe-commits@lists.llvm.org><br>
<b>Sent:</b> 03 October 2018 03:01<br>
<b>To:</b> cfe-commits@lists.llvm.org<br>
<b>Subject:</b> r343653 - OpenCL: Mark printf format string argument</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Author: arsenm<br>
Date: Tue Oct  2 19:01:19 2018<br>
New Revision: 343653<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=343653&view=rev">http://llvm.org/viewvc/llvm-project?rev=343653&view=rev</a><br>
Log:<br>
OpenCL: Mark printf format string argument<br>
<br>
Fixes not warning on format string errors.<br>
<br>
Added:<br>
    cfe/trunk/test/SemaOpenCL/printf-format-string-warnings.cl<br>
Modified:<br>
    cfe/trunk/lib/Headers/opencl-c.h<br>
<br>
Modified: cfe/trunk/lib/Headers/opencl-c.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/opencl-c.h?rev=343653&r1=343652&r2=343653&view=diff">
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/opencl-c.h?rev=343653&r1=343652&r2=343653&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Headers/opencl-c.h (original)<br>
+++ cfe/trunk/lib/Headers/opencl-c.h Tue Oct  2 19:01:19 2018<br>
@@ -14462,7 +14462,7 @@ half16 __ovld __cnfn shuffle2(half16 x,<br>
 #if __OPENCL_C_VERSION__ >= CL_VERSION_1_2<br>
 // OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf<br>
 <br>
-int printf(__constant const char* st, ...);<br>
+int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));<br>
 #endif<br>
 <br>
 // OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions<br>
<br>
Added: cfe/trunk/test/SemaOpenCL/printf-format-string-warnings.cl<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/printf-format-string-warnings.cl?rev=343653&view=auto">
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/printf-format-string-warnings.cl?rev=343653&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaOpenCL/printf-format-string-warnings.cl (added)<br>
+++ cfe/trunk/test/SemaOpenCL/printf-format-string-warnings.cl Tue Oct  2 19:01:19 2018<br>
@@ -0,0 +1,13 @@<br>
+// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header<br>
+<br>
+// Make sure warnings are produced based on printf format strings.<br>
+<br>
+<br>
+kernel void format_string_warnings(__constant char* arg) {<br>
+<br>
+  printf("%d", arg); // expected-warning {{format specifies type 'int' but the argument has type '__constant char *'}}<br>
+<br>
+  printf("not enough arguments %d %d", 4); // expected-warning {{more '%' conversions than data arguments}}<br>
+<br>
+  printf("too many arguments", 4); // expected-warning {{data argument not used by format string}}<br>
+}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
cfe-commits@lists.llvm.org<br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</div>
</span></font></div>
</div>
</div>
</body>
</html>