From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14172 invoked by alias); 20 Oct 2004 21:31:16 -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 14164 invoked by alias); 20 Oct 2004 21:31:15 -0000 Date: Wed, 20 Oct 2004 21:31:00 -0000 Message-ID: <20041020213115.14163.qmail@sourceware.org> From: "jsm at polyomino dot org dot uk" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041019202143.18065.schlie@comcast.net> References: <20041019202143.18065.schlie@comcast.net> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c/18065] usual arithmetic conversion not applying correctly X-Bugzilla-Reason: CC X-SW-Source: 2004-10/txt/msg02702.txt.bz2 List-Id: ------- Additional Comments From jsm at polyomino dot org dot uk 2004-10-20 21:31 ------- Subject: Re: usual arithmetic conversion not applying correctly On Wed, 20 Oct 2004, pinskia at gcc dot gnu dot org wrote: > Otherwise, the integer promotions are performed on both operands. Then > the following rules are applied to the promoted operands: If both > operands have the same type, then no further conversion is needed. The integer promotions are where signed char is promoted to int. Only after then are types compared. It is not the job of the front end to optimise code. The front end should generate datastructures corresponding exactly to the specified semantics of the language, including the promotions in this case. Subsequent passes, preferably on GIMPLE but maybe including fold at present, can deal with eliminating conversions not needed for code generation. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18065