rnk added a comment.

In https://reviews.llvm.org/D43110#1004107, @rsmith wrote:

> Thanks! I'd noticed this weirdness but wasn't sure what we could do about it 
> without breaking MS compat. I like this approach a lot.

Great, sorry for the delay.

> If we want to change the C behavior too, I think that should be a separate 
> change. How does MSVC behave in C mode?

They warn in both C and C++ on the code below:

  enum PosEnum { A_a = 0, A_b = 1, A_c = 10 };
  int test_pos(enum PosEnum a, unsigned uv) { return a < uv; }

I picked this back up because clang-cl was giving -Wsign-comparison warnings in 
code like this:

  unsigned DiagID = ...;
  EXPECT_EQ(DiagID, diag::warn_foo);

I think there has been a recent growth in gtest usage, so this was starting to 
get really annoying. The source-level fix would be to give the diag enums a 
fixed type, but I didn't feel like doing that to literally every enum in LLVM 
and clang. I guess the MSVC build will just be noisy unless we disable that 


cfe-commits mailing list

Reply via email to