Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build warning on Windows with clang #21

Closed
GoogleCodeExporter opened this issue Jul 1, 2015 · 2 comments
Closed

Build warning on Windows with clang #21

GoogleCodeExporter opened this issue Jul 1, 2015 · 2 comments

Comments

@GoogleCodeExporter
Copy link

http://build.chromium.org/p/chromium.fyi/builders/Cr%20Win%20Clang/builds/108/st
eps/compile/logs/stdio

..\..\third_party\cld_2\src\internal\offsetmap.cc(82,43) :  warning(clang): 
format specifies type 'long' but the argument has type 'size_type' (aka 
'unsigned int') [-Wformat]
  fprintf(fout, "Offsetmap: %ld bytes\n", diffs_.size());
                            ~~~           ^~~~~~~~~~~~~
                            %u

There's no great portable way to printf size_t types. Since this is debugging 
code, I suggest this patch:

Nicos-MacBook-Pro:src thakis$ svn diff
Index: internal/offsetmap.cc
===================================================================
--- internal/offsetmap.cc   (revision 165)
+++ internal/offsetmap.cc   (working copy)
@@ -79,7 +79,8 @@
   }

   Flush();    // Make sure any pending entry gets printed
-  fprintf(fout, "Offsetmap: %ld bytes\n", diffs_.size());
+  fprintf(fout, "Offsetmap: %lu bytes\n",
+          static_cast<unsigned long>(diffs_.size()));
   for (int i = 0; i < static_cast<int>(diffs_.size()); ++i) {
     fprintf(fout, "%c%02d ", "&=+-"[OpPart(diffs_[i])], LenPart(diffs_[i]));
     if ((i % 20) == 19) {fprintf(fout, "\n");}

Can you land this, please?

Original issue reported on code.google.com by thakis@chromium.org on 18 Aug 2014 at 2:24

@GoogleCodeExporter
Copy link
Author

Committed as r167. For consistency with the for-loop immediately following, I 
stuck with static_cast<int> and %d. This should fix your error, please confirm!

Index: offsetmap.cc
===================================================================
--- offsetmap.cc        (revision 166)
+++ offsetmap.cc        (working copy)
@@ -79,7 +79,7 @@
   }

   Flush();    // Make sure any pending entry gets printed
-  fprintf(fout, "Offsetmap: %ld bytes\n", diffs_.size());
+  fprintf(fout, "Offsetmap: %d bytes\n", static_cast<int>(diffs_.size()));
   for (int i = 0; i < static_cast<int>(diffs_.size()); ++i) {
     fprintf(fout, "%c%02d ", "&=+-"[OpPart(diffs_[i])], LenPart(diffs_[i]));
     if ((i % 20) == 19) {fprintf(fout, "\n");}

Original comment by andrewha...@google.com on 19 Aug 2014 at 9:18

  • Changed state: Fixed

@GoogleCodeExporter
Copy link
Author

That was fast, thanks!

Original comment by thakis@chromium.org on 19 Aug 2014 at 3:21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant