Disable clang-tidy test that started failing after clang commit ed5a18f.
authorRichard Smith <richard@metafoo.co.uk>
Fri, 7 Aug 2020 02:03:23 +0000 (19:03 -0700)
committerRichard Smith <richard@metafoo.co.uk>
Fri, 7 Aug 2020 02:06:06 +0000 (19:06 -0700)
This checker appears to be intentionally not diagnosing cases where an
operator appearing in a duplicated expression might have side-effects;
Clang is now modeling fold-expressions as having an unresolved operator
name within them, so they now trip up this check.

clang-tools-extra/test/clang-tidy/checkers/misc-redundant-expression.cpp

index c47ef7d..46e84aa 100644 (file)
@@ -794,9 +794,16 @@ struct Bar {
   }
 };
 
-template <class... Values>
-struct Bar2 {
-  static_assert((... && (sizeof(Values) > 0)) == (... && (sizeof(Values) > 0)));
-  // CHECK-MESSAGES: :[[@LINE-1]]:47: warning: both sides of operator are equivalent [misc-redundant-expression]
-};
+// FIXME: It's not clear that we should be diagnosing this. The `&&` operator
+// here is unresolved and could resolve to an overloaded operator that might
+// have side-effects on its operands. For other constructs with the same
+// property (eg, the `S2` cases above) we suppress this diagnostic. This
+// started failing when Clang started properly modeling the fold-expression as
+// containing an unresolved operator name.
+//template <class... Values>
+//struct Bar2 {
+//  static_assert((... && (sizeof(Values) > 0)) == (... && (sizeof(Values) > 0)));
+//  // -MESSAGES: :[[@LINE-1]]:47: warning: both sides of operator are equivalent [misc-redundant-expression]
+//};
+
 } // namespace no_crash