erichkeane added inline comments.

================
Comment at: lib/Sema/SemaChecking.cpp:8176
+      // underlying type, so that when someone specifies the type as
+      // "unsigned" it doesn't cause sign-conversion type warnings.
       if (!Enum->isCompleteDefinition())
----------------
efriedma wrote:
> Explicitly referencing sign-conversion warnings here isn't really helpful.  
> Maybe something more like "Incomplete enums without definitions can have an 
> explicitly specified underlying type. Use that type here to compute the 
> range."
Ok, got it.  I DO note that (IIRC) enums with an underlying type are not 
considered 'incomplete', so I modified your text slightly.  Thanks for the help.


================
Comment at: test/SemaCXX/sign-conversion.cpp:21
+  return foo;
+}
----------------
efriedma wrote:
> There's an existing file test/SemaCXX/warn-sign-conversion.cpp for C++ 
> sign-conversion tests.
Thanks for pointing that out! Unfortunately, that file is very dependent on it 
being C++98, and this test requires c++11 or greater.  I DID rename the test 
file to better match that one however.


================
Comment at: test/SemaCXX/warn-sign-conversion-cpp11.cpp:11
+  // For a non-defined enum, use the underlying type.
+  enum u8 : char;
+  u8 foo{static_cast<u8>(0)};
----------------
efriedma wrote:
> The signedness of "char" can vary based on the host; probably simplest to 
> write out "signed char".
Right, good catch.


https://reviews.llvm.org/D38145



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

Reply via email to