rsmith accepted this revision.
This revision is now accepted and ready to land.
LGTM
================
Comment at: lib/Sema/SemaExpr.cpp:7940-7941
@@ -7939,4 +7939,4 @@
if (LHS.get()->isValueDependent() ||
- !LHS.get()->isIntegerConstantExpr(Left, S.Context) ||
+ !LHS.get()->EvaluateAsInt(Left, S.Context) ||
LHSType->hasUnsignedIntegerRepresentation())
return;
----------------
While you're here, please reverse the order of these two lines. It's much
cheaper to check for an unsigned type than to evaluate the expression.
================
Comment at: test/Sema/shift.c:42
@@ -41,3 +41,3 @@
i = 1 << (WORD_BIT - 1); // expected-warning {{sets the sign bit of the
shift expression}}
- i = -1 << (WORD_BIT - 1);
+ i = -1 << (WORD_BIT - 1); // expected-warning {{shifting a negative signed
value is undefined}}
i = 0 << (WORD_BIT - 1);
----------------
Please also add a test that we even warn for shifting a negative value by zero.
Repository:
rL LLVM
http://reviews.llvm.org/D10938
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits