From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2857 invoked by alias); 12 Dec 2002 16:56:05 -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 2834 invoked by uid 71); 12 Dec 2002 16:56:04 -0000 Resent-Date: 12 Dec 2002 16:56:04 -0000 Resent-Message-ID: <20021212165604.2833.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, jcphillips@yahoo.com Received: (qmail 26557 invoked by uid 61); 12 Dec 2002 16:48:00 -0000 Message-Id: <20021212164800.26553.qmail@sources.redhat.com> Date: Thu, 12 Dec 2002 08:56:00 -0000 From: jcphillips@yahoo.com Reply-To: jcphillips@yahoo.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: optimization/8916: unsigned char assign gets hosed. X-SW-Source: 2002-12/txt/msg00717.txt.bz2 List-Id: >Number: 8916 >Category: optimization >Synopsis: unsigned char assign gets hosed. >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Dec 12 08:56:02 PST 2002 >Closed-Date: >Last-Modified: >Originator: jcphillips@yahoo.com >Release: gcc v3.2 >Organization: >Environment: cygwin. gcc built for mcore-elf. >Description: The following source fails to generate correct asm: ---------------- extern void ExtFunc(char *c); void test() { unsigned char data = 166; ExtFunc(&data); } -------------------------- mcore-elf-objdump output is: -------------------------- test.o: file format elf32-mcore-big Disassembly of section .text: 00000000 : 0: 24f0 subi r0, 16 2: 9f20 st r15, (r0, 8) 4: 2c07 bmaski r7, 0 6: b700 stb r7, (r0, 0) 8: 1202 mov r2, r0 a: 7f02 jsri 0x0 // from address pool at 0x14 c: 8f20 ld r15, (r0, 8) e: 20f0 addi r0, 16 10: 00cf jmp r15 12: 0000 bkpt 14: 0000 bkpt ... -------------------------- The bmaski r7,0 causes the char value to be 0xFF. When compiled without optimization, result is fine. >How-To-Repeat: compile with: mcore-elf-gcc -c -O2 -mbig-endian -m210 test.c >Fix: >Release-Note: >Audit-Trail: >Unformatted: