From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1536 invoked by alias); 22 Mar 2004 22:11:30 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 1493 invoked by uid 48); 22 Mar 2004 22:11:25 -0000 Date: Mon, 22 Mar 2004 22:11:00 -0000 Message-ID: <20040322221125.1492.qmail@sources.redhat.com> From: "pinskia at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20040322193838.14682.aj@gcc.gnu.org> References: <20040322193838.14682.aj@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug optimization/14682] [tree-ssa] error: Invalid operand to binary operator X-Bugzilla-Reason: CC X-SW-Source: 2004-03/txt/msg02706.txt.bz2 List-Id: ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-03-22 22:11 ------- Here is a version which uses char instead of long/long long's: int __atomic_readv_replacement(unsigned char iov_len, int count, int i) { unsigned char bytes = 0; if ((unsigned char)((char)127 - bytes) < iov_len) return 22; return 0; } The problem is that fold is converting 127 < iov_len into (char)( iov_len) < 0 which is right but it is not gimple. -- What |Removed |Added ---------------------------------------------------------------------------- CC| |dnovillo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14682