From 9fca5e4f42ffedef5fe58da616c1df405c2411f7 Mon Sep 17 00:00:00 2001 From: tira-misu Date: Thu, 10 Dec 2020 23:03:53 +0100 Subject: [PATCH] Add flatc option to inhibit all warnings #6005 (#6301) * Fix C/C++ CreateDirect with sorted vectors If a struct has a key the vector has to be sorted. To sort the vector you can't use "const". * Changes due to code review * Improve code readability * Add generate of JSON schema to string to lib * option indent_step is supported * Remove unused variables * Fix break in test * Fix style to be consistent with rest of the code * Add option --no-warnings to inhibit all warnings * Fix order of member initialization * Add documentation for --no-warnings --- docs/source/Compiler.md | 5 +++++ include/flatbuffers/idl.h | 2 ++ src/flatc.cpp | 3 +++ src/idl_parser.cpp | 5 ++++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/source/Compiler.md b/docs/source/Compiler.md index 7b15c79d..296e998e 100644 --- a/docs/source/Compiler.md +++ b/docs/source/Compiler.md @@ -229,5 +229,10 @@ Additional options: - `--force-empty-vectors` : When serializing from object API representation, force vectors to empty rather than null. +- `--flexbuffers` : Used with "binary" and "json" options, it generates + data using schema-less FlexBuffers. + +- `--no-warnings` : Inhibit all warning messages. + NOTE: short-form options for generators are deprecated, use the long form whenever possible. diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 6afdc7a5..31a41d75 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -572,6 +572,7 @@ struct IDLOptions { std::string proto_namespace_suffix; std::string filename_suffix; std::string filename_extension; + bool no_warnings; // Possible options for the more general generator below. enum Language { @@ -662,6 +663,7 @@ struct IDLOptions { cs_gen_json_serializer(false), filename_suffix("_generated"), filename_extension(), + no_warnings(false), lang(IDLOptions::kJava), mini_reflect(IDLOptions::kNone), require_explicit_ids(false), diff --git a/src/flatc.cpp b/src/flatc.cpp index 40e16fab..09acb076 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -171,6 +171,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const { " force vectors to empty rather than null.\n" " --flexbuffers Used with \"binary\" and \"json\" options, it generates\n" " data using schema-less FlexBuffers.\n" + " --no-warnings Inhibit all warning messages.\n" "FILEs may be schemas (must end in .fbs), binary schemas (must end in .bfbs),\n" "or JSON files (conforming to preceding schema). FILEs after the -- must be\n" "binary flatbuffer format files.\n" @@ -372,6 +373,8 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.use_flexbuffers = true; } else if (arg == "--gen-jvmstatic") { opts.gen_jvmstatic = true; + } else if (arg == "--no-warnings") { + opts.no_warnings = true; } else if (arg == "--cpp-std") { if (++argi >= argc) Error("missing C++ standard specification" + arg, true); diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index bb23dc11..a32c93c3 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -142,7 +142,10 @@ void Parser::Message(const std::string &msg) { error_ += ": " + msg; } -void Parser::Warning(const std::string &msg) { Message("warning: " + msg); } +void Parser::Warning(const std::string &msg) { + if (!opts.no_warnings) + Message("warning: " + msg); +} CheckedError Parser::Error(const std::string &msg) { Message("error: " + msg); -- GitLab