From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29220 invoked by alias); 21 Oct 2002 16:46:02 -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 29170 invoked by uid 71); 21 Oct 2002 16:46:01 -0000 Resent-Date: 21 Oct 2002 16:46:01 -0000 Resent-Message-ID: <20021021164601.29169.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, jluu@mainsoft.com, yuvalk@mainsoft.com Resent-Reply-To: gcc-gnats@gcc.gnu.org, noaml@mainsoft.com Received: (qmail 28113 invoked by uid 61); 21 Oct 2002 16:41:42 -0000 Message-Id: <20021021164142.28112.qmail@sources.redhat.com> Date: Mon, 21 Oct 2002 09:46:00 -0000 From: noaml@mainsoft.com Reply-To: noaml@mainsoft.com To: gcc-gnats@gcc.gnu.org Cc: jluu@mainsoft.com, yuvalk@mainsoft.com X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify: jluu@mainsoft.com yuvalk@mainsoft.com Subject: optimization/8302: Pointer casting causes ++ to be ignored when optimizing X-SW-Source: 2002-10/txt/msg00782.txt.bz2 List-Id: >Number: 8302 >Category: optimization >Synopsis: Pointer casting causes ++ to be ignored when optimizing >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Mon Oct 21 09:46:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Noam Lampert >Release: gcc version 3.3 20021019 (experimental) >Organization: >Environment: Intel 386. RH 7.3. kernel 2.4.18-3 >Description: unsigned char *p; unsigned char x; .... *(*((unsigned char **)(&p)))++ = x; as a side effect, p should be incremented. Sometimes, in optimized, it is not. >How-To-Repeat: gcc -O2 main.c a.out This source is in standard testcase format, and will call abort() upon failure. >Fix: Changing the code to *(*((unsigned char **)(&p))) = x; p += sizeof(x); >Release-Note: >Audit-Trail: >Unformatted: