http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54103
--- Comment #6 from Joseph S. Myers <jsm28 at gcc dot gnu.org> 2012-09-20 20:49:10 UTC --- Author: jsm28 Date: Thu Sep 20 20:49:06 2012 New Revision: 191589 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191589 Log: PR c/54103 * c-typeck.c (build_unary_op): Pass original argument of TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove any C_MAYBE_CONST_EXPR, if it has integer operands. (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR to c_objc_common_truthvalue_conversion, then remove any C_MAYBE_CONST_EXPR, if they have integer operands. Use c_objc_common_truthvalue_conversion not c_common_truthvalue_conversion. (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and call note_integer_operands for arguments with integer operands that are not integer constants. testsuite: * gcc.c-torture/compile/pr54103-1.c, gcc.c-torture/compile/pr54103-2.c, gcc.c-torture/compile/pr54103-3.c, gcc.c-torture/compile/pr54103-4.c, gcc.c-torture/compile/pr54103-5.c, gcc.c-torture/compile/pr54103-6.c: New tests. * gcc.dg/c90-const-expr-8.c: Update expected column number. Added: branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54103-1.c branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54103-2.c branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54103-3.c branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54103-4.c branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54103-5.c branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54103-6.c Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/c-typeck.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/c90-const-expr-8.c