Fix Fuzzer build error

../../third_party/sqlite/fuzz/sql_query_proto_to_string.cc:57:23: error: declaration requires an exit-time destructor [-Werror,-Wexit-time-destructors]
   57 | std::set<std::string> disabled_queries_;
      |                       ^
1 error generated.

Change-Id: Ie31286880d98758a7e72c2fa7501221e8c0fae8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6902693
Auto-Submit: Ari Chivukula <arichiv@chromium.org>
Commit-Queue: Olivier Li <olivierli@chromium.org>
Reviewed-by: Olivier Li <olivierli@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1509730}
NOKEYCHECK=True
GitOrigin-RevId: 9ecd010a936144bc7a5a240100e2fa49a47654b3
diff --git a/BUILD.gn b/BUILD.gn
index 4826a3c..46b11e7 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -456,7 +456,10 @@
     "fuzz/sql_query_proto_to_string.cc",
     "fuzz/sql_query_proto_to_string.h",
   ]
-  deps = [ ":sqlite3_lpm_fuzzer_input" ]
+  deps = [
+    ":sqlite3_lpm_fuzzer_input",
+    "//base",
+  ]
 
   # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and
   # enable the diagnostic by removing this line.
@@ -472,6 +475,7 @@
   ]
   deps = [
     ":sqlite3_lpm_fuzzer_core",
+    "//base",
     "//third_party/libprotobuf-mutator",
   ]
   additional_configs = [ ":sqlite_warnings" ]
@@ -491,6 +495,7 @@
   ]
   deps = [
     ":sqlite3_lpm_fuzzer_core",
+    "//base",
     "//third_party/libprotobuf-mutator",
   ]
   additional_configs = [
@@ -517,6 +522,7 @@
   ]
   deps = [
     ":sqlite3_lpm_fuzzer_core",
+    "//base",
     "//third_party/libprotobuf-mutator",
   ]
   libfuzzer_options = [ "max_len=111000" ]
@@ -530,6 +536,7 @@
   ]
   deps = [
     ":sqlite3_lpm_fuzzer_core",
+    "//base",
     "//third_party/libprotobuf-mutator",
   ]
   libfuzzer_options = [ "max_len=111000" ]
@@ -543,6 +550,7 @@
   ]
   deps = [
     ":sqlite3_lpm_fuzzer_core",
+    "//base",
     "//third_party/libprotobuf-mutator",
   ]
   libfuzzer_options = [
diff --git a/fuzz/sql_query_proto_to_string.cc b/fuzz/sql_query_proto_to_string.cc
index 0ec8293..f74b6ac 100644
--- a/fuzz/sql_query_proto_to_string.cc
+++ b/fuzz/sql_query_proto_to_string.cc
@@ -12,6 +12,7 @@
 #include <string>
 #include <vector>
 
+#include "base/no_destructor.h"
 #include "third_party/sqlite/fuzz/icu_codes.pb.h"
 #include "third_party/sqlite/fuzz/sql_queries.pb.h"
 #include "third_party/sqlite/fuzz/sql_query_grammar.pb.h"
@@ -22,7 +23,7 @@
 #define CONV_FN(TYPE, VAR_NAME) std::string TYPE##ToString(const TYPE& VAR_NAME)
 
 #define RETURN_IF_DISABLED_QUERY(TYPE)     \
-  if (disabled_queries_.count(#TYPE) != 0) \
+  if (disabled_queries_->count(#TYPE) != 0) \
     return "";
 
 namespace sql_fuzzer {
@@ -54,7 +55,7 @@
 constexpr uint32_t kMaxViewNumber = 5;
 constexpr uint32_t kMaxTriggerNumber = 10;
 
-std::set<std::string> disabled_queries_;
+static base::NoDestructor<std::set<std::string>> disabled_queries_;
 }  // namespace
 
 CONV_FN(Expr, expr);
@@ -2726,7 +2727,7 @@
 }
 
 void SetDisabledQueries(std::set<std::string> disabled_queries) {
-  disabled_queries_ = disabled_queries;
+  *disabled_queries_ = disabled_queries;
 }
 
 }  // namespace sql_fuzzer