From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17263 invoked by alias); 4 May 2003 14:26:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 17242 invoked by uid 71); 4 May 2003 14:26:01 -0000 Resent-Date: 4 May 2003 14:26:01 -0000 Resent-Message-ID: <20030504142601.17241.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, gumo@lucifer.kgt.bme.hu Received: (qmail 16847 invoked by uid 48); 4 May 2003 14:22:28 -0000 Message-Id: <20030504142228.16846.qmail@sources.redhat.com> Date: Sun, 04 May 2003 14:26:00 -0000 From: gumo@lucifer.kgt.bme.hu Reply-To: gumo@lucifer.kgt.bme.hu To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: optimization/10620: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2 X-SW-Source: 2003-05/txt/msg00234.txt.bz2 List-Id: >Number: 10620 >Category: optimization >Synopsis: for(i=25000;i;i--) {} generates wrong assembly source in avr-gcc with -O2 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Sun May 04 14:26:01 UTC 2003 >Closed-Date: >Last-Modified: >Originator: Endre Nagy >Release: gcc version 3.3 20030421 (prerelease) >Organization: >Environment: Win32 -> atmel avr crosscompiler >Description: C code: for(i=25000;i;i--) {} faulty machine code (it would be OK for i-=25): ldi r18,lo8(25000) ldi r19,hi8(25000) .L10:· subi r18,lo8(-(-25)) sbci r19,hi8(-(-25)) brne .L10· C code: for(i=35000;i;i--) {} correct machine code (only initial value of i has changed): ldi r18,lo8(-30536) ldi r19,hi8(-30536) .L10: subi r18,lo8(-(-1)) sbci r19,hi8(-(-1)) brne .L10 commandline: avr-gcc -g -Wall -O2 -mmcu=at90s8515 -S -o os8515.S os8515.c >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: