fuchsia: Fix sign-compare warning in divsufsort

ALPHABET_SIZE, BUCKET_A_SIZE, and BUCKET_B_SIZE are defined in terms
of UINT8_MAX which is unsigned (at least on Fuchsia) and fairly small
((UINT8_MAX+1)^2). saidx_t and saint_t are signed.

[25568->415/26982 ~1000] CXX obj/courgette/divsufsort/divsufsort.o
FAILED: obj/courgette/divsufsort/divsufsort.o
/usr/local/google/home/scottmg/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/courgette/divsufsort/divsufsort.o.d -DV8_DEPRECATION_WARNINGS -DDCHECK_ALWAYS_ON=1 -DUSE_AURA=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DFUCHSIA_SDK_VERSION=05a1d1f99b5b8b4b8edb3097564b0653ec0f52bd -DCR_CLANG_REVISION=\"344066-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=344254 -DCR_LIBCXXABI_REVISION=344215 -D_LIBCPP_ENABLE_NODISCARD -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../.. -Igen -I../../third_party/fuchsia-sdk/sdk/pkg/async/include -I../../third_party/fuchsia-sdk/sdk/pkg/fdio/include -I../../third_party/fuchsia-sdk/sdk/pkg/zx/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -fcolor-diagnostics -fmerge-all-constants -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 -no-canonical-prefixes -fcomplete-member-pointers --target=x86_64-fuchsia -fno-sanitize=safe-stack -m64 -march=x86-64 -Wall -Werror -Wextra -Wimplicit-fallthrough -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-null-pointer-arithmetic -Wno-ignored-pragma-optimize -Wno-defaulted-function-deleted -O0 -fno-omit-frame-pointer -g2 -ggnu-pubnames -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang enforce-in-thirdparty-webkit -Xclang -plugin-arg-find-bad-constructs -Xclang check-enum-max-value -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-shorten-64-to-32 -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++14 -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include --sysroot=../../third_party/fuchsia-sdk/sdk/arch/x64/sysroot -fvisibility-inlines-hidden -c ../../courgette/third_party/divsufsort/divsufsort.cc -o obj/courgette/divsufsort/divsufsort.o
../../courgette/third_party/divsufsort/divsufsort.cc:60:16: error: comparison of integers of different signs: 'divsuf::saidx_t' (aka 'int') and 'unsigned int' [-Werror,-Wsign-compare]
  for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; }
             ~ ^ ~~~~~~~~~~~~~
../../courgette/third_party/divsufsort/divsufsort.cc:61:16: error: comparison of integers of different signs: 'divsuf::saidx_t' (aka 'int') and 'unsigned int' [-Werror,-Wsign-compare]
  for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; }
             ~ ^ ~~~~~~~~~~~~~
../../courgette/third_party/divsufsort/divsufsort.cc:87:32: error: comparison of integers of different signs: 'divsuf::saint_t' (aka 'int') and 'unsigned int' [-Werror,-Wsign-compare]
  for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) {
                            ~~ ^ ~~~~~~~~~~~~~
../../courgette/third_party/divsufsort/divsufsort.cc:91:25: error: comparison of integers of different signs: 'divsuf::saint_t' (aka 'int') and 'unsigned int' [-Werror,-Wsign-compare]
    for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) {
                     ~~ ^ ~~~~~~~~~~~~~
4 errors generated.

Bug: 808287
Change-Id: I57c416b029803d56157152f73c71742e9ba61ab9
Reviewed-on: https://chromium-review.googlesource.com/c/1298232
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#602817}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: fdf87103b6d01dc8b7fa3d7120fa03a53e0b1864
2 files changed
tree: 7595317e4ef75576ecdecc0f552ac40bc21835f5
  1. BUILD.gn
  2. DEPS
  3. OWNERS
  4. adjustment_method.cc
  5. adjustment_method.h
  6. adjustment_method_2.cc
  7. adjustment_method_unittest.cc
  8. analyze_mem_test
  9. analyze_stress_test
  10. assembly_program.cc
  11. assembly_program.h
  12. base_test_unittest.cc
  13. base_test_unittest.h
  14. bsdiff_memory_unittest.cc
  15. consecutive_range_visitor.h
  16. consecutive_range_visitor_unittest.cc
  17. courgette.h
  18. courgette_application.png
  19. courgette_flow.cc
  20. courgette_flow.h
  21. courgette_generation.png
  22. courgette_minimal_tool.cc
  23. courgette_tool.cc
  24. crc.cc
  25. crc.h
  26. description.html
  27. description.md
  28. difference_estimator.cc
  29. difference_estimator.h
  30. difference_estimator_unittest.cc
  31. disassembler.cc
  32. disassembler.h
  33. disassembler_elf_32.cc
  34. disassembler_elf_32.h
  35. disassembler_elf_32_arm.cc
  36. disassembler_elf_32_arm.h
  37. disassembler_elf_32_x86.cc
  38. disassembler_elf_32_x86.h
  39. disassembler_elf_32_x86_unittest.cc
  40. disassembler_win32.cc
  41. disassembler_win32.h
  42. disassembler_win32_x64.cc
  43. disassembler_win32_x64.h
  44. disassembler_win32_x64_unittest.cc
  45. disassembler_win32_x86.cc
  46. disassembler_win32_x86.h
  47. disassembler_win32_x86_unittest.cc
  48. encode_decode_unittest.cc
  49. encoded_program.cc
  50. encoded_program.h
  51. encoded_program_fuzz_unittest.cc
  52. encoded_program_unittest.cc
  53. ensemble.cc
  54. ensemble.h
  55. ensemble_apply.cc
  56. ensemble_create.cc
  57. ensemble_unittest.cc
  58. image_utils.h
  59. image_utils_unittest.cc
  60. instruction_utils.h
  61. label_manager.cc
  62. label_manager.h
  63. label_manager_unittest.cc
  64. memory_allocator.cc
  65. memory_allocator.h
  66. memory_allocator_unittest.cc
  67. memory_monitor.cc
  68. patch_generator_x86_32.h
  69. patcher_x86_32.h
  70. program_detector.cc
  71. program_detector.h
  72. program_detector_unittest.cc
  73. region.h
  74. rel32_finder.cc
  75. rel32_finder.h
  76. rel32_finder_unittest.cc
  77. rel32_finder_x64.cc
  78. rel32_finder_x64.h
  79. rel32_finder_x86.cc
  80. rel32_finder_x86.h
  81. run_mem_test
  82. run_stress_test
  83. simple_delta.cc
  84. simple_delta.h
  85. streams.cc
  86. streams.h
  87. streams_unittest.cc
  88. stress_test_common
  89. testdata/
  90. third_party/
  91. typedrva_unittest.cc
  92. types_elf.h
  93. types_win_pe.h
  94. versioning_unittest.cc