@@ -11783,9 +11783,15 @@ build_binary_op (location_t location, enum tree_code code,
}
if (warn_sign_compare)
- warn_for_sign_compare (location, orig_op0_folded,
- orig_op1_folded, op0, op1,
- result_type, resultcode);
+ {
+ if (VAR_P (orig_op0_folded))
+ orig_op0_folded = decl_constant_value (orig_op0_folded);
+ if (VAR_P (orig_op1_folded))
+ orig_op1_folded = decl_constant_value (orig_op1_folded);
+ warn_for_sign_compare (location, orig_op0_folded,
+ orig_op1_folded, op0, op1,
+ result_type, resultcode);
+ }
if (!in_late_binary_op && !int_operands)
{
if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST)