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