rsmith accepted this revision.
rsmith added a comment.
This revision is now accepted and ready to land.

Thanks!



================
Comment at: lib/Sema/SemaChecking.cpp:10899
 
+  if (TargetRange.Width > SourceRange.Width)
+    if (auto *UO = dyn_cast<UnaryOperator>(E))
----------------
Add braces to these outer `if`s.


================
Comment at: test/Sema/unary-minus-integer-impcast.c:1-8
+// RUN: %clang_cc1 %s -verify -Wconversion -fsyntax-only
+
+void test(void) {
+  unsigned int a = 1;
+
+  unsigned long long b = -a; // expected-warning {{higher order bits are 
zeroes after implicit conversion}}
+  long long c = -a;          // expected-warning {{the resulting value is 
always non-negative after implicit conversion}}
----------------
This test is not portable (it will fail on a target where `sizeof(int) == 
sizeof(long long)`); please add a `-triple` flag.

Please also add a test that we don't warn for the same-size cases (eg, pick a 
target where `sizeof(int) == sizeof(long)` and test that `unsigned long b2 = 
-a;` and `long c2 = -a;` do not warn).


https://reviews.llvm.org/D52137



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to