From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14600 invoked by alias); 5 Mar 2002 10:56:06 -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 14529 invoked by uid 71); 5 Mar 2002 10:56:02 -0000 Date: Tue, 05 Mar 2002 02:56:00 -0000 Message-ID: <20020305105602.14527.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: jeroen dobbelaere Subject: Re: target/5828: gcc-3.0.4 on arm : floating point registers incorrectly reloaded Reply-To: jeroen dobbelaere X-SW-Source: 2002-03/txt/msg00151.txt.bz2 List-Id: The following reply was made to PR target/5828; it has been noted by GNATS. From: jeroen dobbelaere To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, jeroen.dobbelaere@acunia.com, gcc-bugs@gcc.gnu.org Cc: Subject: Re: target/5828: gcc-3.0.4 on arm : floating point registers incorrectly reloaded Date: Tue, 05 Mar 2002 11:43:37 +0100 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5828 Following testprogram can be used to verify Try with : g++ -Wall -O float-reload-jdo-1.cpp ./a.out g++ -Wall -O2 float-reload-jdo-1.cpp ./a.out g++ -Wall -O3 float-reload-jdo-1.cpp ./a.out ********* float-reload-jdo-1.cpp - begin *********** // float-reload-jdo-1.cpp #include extern void* do_something(int s) throw(int); extern void* do_something_else(int s) throw(int); extern double getADouble(int i); int main(int argc, char* argv[]) { double d0,d1,d2,d3,d4,d5,d6,d7; int i=0; d0=getADouble(i++); d1=getADouble(i++); d2=getADouble(i++); d3=getADouble(i++); d4=getADouble(i++); d5=getADouble(i++); d6=getADouble(i++); d7=getADouble(i++); do_something(1); if(d0 != getADouble(0)) return -1; if(d1 != getADouble(1)) return -1; if(d2 != getADouble(2)) return -1; if(d3 != getADouble(3)) return -1; if(d4 != getADouble(4)) return -1; if(d5 != getADouble(5)) return -1; if(d6 != getADouble(6)) return -1; if(d7 != getADouble(7)) return -1; printf("ok\n"); return 0; } double getADouble(int i) { const double list[8] = { 123.333, 126.784353, 203.03415, 220.6234605, 0.000134315123, 9384.239451, 1239487157834, 9328432.234 }; return list[i]; } void* do_something(int s) throw(int) { return do_something_else(s); } void* do_something_else(int s) throw(int) { switch(s) { case 0: return 0; case 1: return (void*)1; default: throw s; } } ********* float-reload-jdo-1.cpp - end ***********