Avoid passing zero to __builtin_clz.

PiperOrigin-RevId: 487703035
diff --git a/fuzztest/BUILD b/fuzztest/BUILD
index 1752086..001846e 100644
--- a/fuzztest/BUILD
+++ b/fuzztest/BUILD
@@ -45,7 +45,6 @@
         ":logging",
         ":table_of_recent_compares",
         "@com_google_absl//absl/base:core_headers",
-        "@com_google_absl//absl/base:dynamic_annotations",
         "@com_google_absl//absl/types:span",
     ],
 )
diff --git a/fuzztest/internal/coverage.cc b/fuzztest/internal/coverage.cc
index ea6455d..3ac544e 100644
--- a/fuzztest/internal/coverage.cc
+++ b/fuzztest/internal/coverage.cc
@@ -24,7 +24,6 @@
 #include <type_traits>
 
 #include "absl/base/attributes.h"
-#include "absl/base/dynamic_annotations.h"
 #include "absl/types/span.h"
 #include "./fuzztest/internal/logging.h"
 #include "./fuzztest/internal/table_of_recent_compares.h"
@@ -35,12 +34,8 @@
 // We use this function in instrumentation callbacks instead of library
 // functions (like `absl::bit_width`) in order to avoid having potentially
 // instrumented code in the callback.
-// TODO(b/258637913): revert to implementation below when fixed
-// constexpr uint8_t BitWidth(uint8_t x) { return 8 - __builtin_clz(x); }
-uint8_t BitWidth(uint8_t x) {
-  uint8_t result = __builtin_clz(x);
-  ABSL_ANNOTATE_MEMORY_IS_INITIALIZED(&result, sizeof(result));
-  return 8 - result;
+constexpr uint8_t BitWidth(uint8_t x) {
+  return x == 0 ? 0 : (8 - __builtin_clz(x));
 }
 
 }  // namespace