enable extra-semi warnings
This is to prevent unnecessary semicolon usage and for consistency.
Change-Id: I46812808c32de1d865906b180d11f609d91a8e1a
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/13782
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
diff --git a/build/gen.py b/build/gen.py
index 2d89af4..abe019c 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -439,7 +439,11 @@
'-Wall',
'-Wextra',
'-Wno-unused-parameter',
+
+ '-Wextra-semi',
+ '-Wextra-semi-stmt',
'-Wundef',
+
'-std=c++17'
])
diff --git a/src/base/numerics/clamped_math.h b/src/base/numerics/clamped_math.h
index 9e83543..88e0e3a 100644
--- a/src/base/numerics/clamped_math.h
+++ b/src/base/numerics/clamped_math.h
@@ -233,12 +233,12 @@
BASE_NUMERIC_ARITHMETIC_OPERATORS(Clamped, Clamp, Xor, ^, ^=)
BASE_NUMERIC_ARITHMETIC_VARIADIC(Clamped, Clamp, Max)
BASE_NUMERIC_ARITHMETIC_VARIADIC(Clamped, Clamp, Min)
-BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsLess, <);
-BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsLessOrEqual, <=);
-BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsGreater, >);
-BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsGreaterOrEqual, >=);
-BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsEqual, ==);
-BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsNotEqual, !=);
+BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsLess, <)
+BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsLessOrEqual, <=)
+BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsGreater, >)
+BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsGreaterOrEqual, >=)
+BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsEqual, ==)
+BASE_NUMERIC_COMPARISON_OPERATORS(Clamped, IsNotEqual, !=)
} // namespace internal
diff --git a/src/base/numerics/safe_conversions.h b/src/base/numerics/safe_conversions.h
index 35c4089..32fb5a9 100644
--- a/src/base/numerics/safe_conversions.h
+++ b/src/base/numerics/safe_conversions.h
@@ -310,14 +310,14 @@
typename UnderlyingType<R>::type>(lhs, rhs); \
}
-BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsLess, <);
-BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsLessOrEqual, <=);
-BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsGreater, >);
-BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsGreaterOrEqual, >=);
-BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsEqual, ==);
-BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsNotEqual, !=);
+BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsLess, <)
+BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsLessOrEqual, <=)
+BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsGreater, >)
+BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsGreaterOrEqual, >=)
+BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsEqual, ==)
+BASE_NUMERIC_COMPARISON_OPERATORS(Strict, IsNotEqual, !=)
-}; // namespace internal
+} // namespace internal
using internal::as_signed;
using internal::as_unsigned;
diff --git a/src/gn/analyzer.cc b/src/gn/analyzer.cc
index e15c265..b1be618 100644
--- a/src/gn/analyzer.cc
+++ b/src/gn/analyzer.cc
@@ -89,7 +89,7 @@
const std::string& key,
const std::string& value) {
dict.SetKey(key, base::Value(value));
-};
+}
void WriteLabels(const Label& default_toolchain,
base::DictionaryValue& dict,
diff --git a/src/gn/command_format.cc b/src/gn/command_format.cc
index a3fda21..6118fa4 100644
--- a/src/gn/command_format.cc
+++ b/src/gn/command_format.cc
@@ -519,7 +519,7 @@
#define RETURN_IF_SET(x) \
if (int result = (x); result >= 0) \
- return result;
+ return result
if (const AccessorNode* accessor = node->AsAccessor()) {
RETURN_IF_SET(SuffixCommentTreeWalk(accessor->subscript()));
@@ -559,7 +559,7 @@
}
return -1;
-};
+}
// If there are suffix comments on the first node or its children, they might
// carry down multiple lines. Otherwise, use the node's normal end range. This
diff --git a/src/gn/compile_commands_writer.cc b/src/gn/compile_commands_writer.cc
index c65d378..a2ee3a0 100644
--- a/src/gn/compile_commands_writer.cc
+++ b/src/gn/compile_commands_writer.cc
@@ -66,7 +66,7 @@
RecursiveTargetConfigToStream<T>(config, target, getter, writer, out);
base::EscapeJSONString(out.str(), false, &result);
return result;
-};
+}
void SetupCompileFlags(const Target* target,
PathOutput& path_output,
diff --git a/src/gn/immutable_vector.h b/src/gn/immutable_vector.h
index 306819b..0897bec 100644
--- a/src/gn/immutable_vector.h
+++ b/src/gn/immutable_vector.h
@@ -40,7 +40,7 @@
const T* data() const { return begin(); }
size_t size() const { return header_ ? header_->size : 0u; }
bool empty() const { return size() == 0; }
- const T& operator[](size_t offset) const { return begin()[offset]; };
+ const T& operator[](size_t offset) const { return begin()[offset]; }
const T* begin() const { return header_ ? &header_->item0 : nullptr; }
const T* end() const {
diff --git a/src/gn/json_project_writer.cc b/src/gn/json_project_writer.cc
index ba23749..27368ff 100644
--- a/src/gn/json_project_writer.cc
+++ b/src/gn/json_project_writer.cc
@@ -313,7 +313,6 @@
if (line_end == std::string_view::npos) {
out_ << json;
- ;
comma_ = {};
return;
}
diff --git a/src/gn/parse_tree.cc b/src/gn/parse_tree.cc
index e9ca8fa..28d5313 100644
--- a/src/gn/parse_tree.cc
+++ b/src/gn/parse_tree.cc
@@ -258,10 +258,12 @@
std::unique_ptr<ParseNode> ParseNode::BuildFromJSON(const base::Value& value) {
const std::string& str_type = value.FindKey(kJsonNodeType)->GetString();
-#define RETURN_IF_MATCHES_NAME(t) \
- if (str_type == t::kDumpNodeName) { \
- return t::NewFromJSON(value); \
- }
+#define RETURN_IF_MATCHES_NAME(t) \
+ do { \
+ if (str_type == t::kDumpNodeName) { \
+ return t::NewFromJSON(value); \
+ } \
+ } while(0)
RETURN_IF_MATCHES_NAME(AccessorNode);
RETURN_IF_MATCHES_NAME(BinaryOpNode);
@@ -332,7 +334,8 @@
const base::Value* child = value.FindKey(kJsonNodeChild); \
if (!child || !child->is_list()) { \
return nullptr; \
- }
+ } \
+ (void)(0) // this is to supress extra semicolon warning.
// static
std::unique_ptr<AccessorNode> AccessorNode::NewFromJSON(
diff --git a/src/gn/rust_project_writer_helpers.h b/src/gn/rust_project_writer_helpers.h
index 4ccf568..9aa7eba 100644
--- a/src/gn/rust_project_writer_helpers.h
+++ b/src/gn/rust_project_writer_helpers.h
@@ -78,7 +78,7 @@
std::optional<OutputFile>& gen_dir() { return gen_dir_; }
// Returns the crate index.
- CrateIndex index() { return index_; };
+ CrateIndex index() { return index_; }
// Returns the displayable crate label.
const std::string& label() { return label_; }
diff --git a/src/gn/string_atom.h b/src/gn/string_atom.h
index c590e0b..51aa8d5 100644
--- a/src/gn/string_atom.h
+++ b/src/gn/string_atom.h
@@ -171,7 +171,7 @@
template <typename U>
bool operator()(const U& a, const StringAtom& b) const noexcept {
return a < b.str();
- };
+ }
};
template <>