From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3684 invoked by alias); 9 Mar 2003 20:46: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 3649 invoked by uid 71); 9 Mar 2003 20:46:01 -0000 Resent-Date: 9 Mar 2003 20:46:01 -0000 Resent-Message-ID: <20030309204601.3647.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, schwab@gnu.org Received: (qmail 3558 invoked by uid 48); 9 Mar 2003 20:45:04 -0000 Message-Id: <20030309204504.3557.qmail@sources.redhat.com> Date: Sun, 09 Mar 2003 20:46:00 -0000 From: schwab@gnu.org Reply-To: schwab@gnu.org To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: middle-end/10011: Broken __builtin_constant_p X-SW-Source: 2003-03/txt/msg00436.txt.bz2 List-Id: >Number: 10011 >Category: middle-end >Synopsis: Broken __builtin_constant_p >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Sun Mar 09 20:46:01 UTC 2003 >Closed-Date: >Last-Modified: >Originator: Andreas Schwab >Release: 3.4 20030306 (experimental) >Organization: >Environment: System: Linux whitebox 2.4.20-ben7 #1 Thu Feb 27 00:38:54 CET 2003 ppc unknown unknown GNU/Linux Architecture: ppc host: powerpc-unknown-linux-gnu build: powerpc-unknown-linux-gnu target: powerpc-unknown-linux-gnu configured with: ../gcc/configure --prefix=/usr/local/powerpc-linux --host=powerpc-linux --with-__cxa_atexit --with-as=/usr/local/powerpc-linux/bin/as --with-ld=/usr/local/powerpc-linux/bin/ld --enable-languages=c,c++ --enable-shared >Description: __builtin_constant_p expands to non-zero although the argument is not constant. >How-To-Repeat: $ cat builtin_constant_p.c extern void __bad_udelay(void); static void usb_hub_port_wait_reset(unsigned int delay) { int delay_time; for (delay_time = 0; delay_time < 500; delay_time += delay) { if (__builtin_constant_p(delay)) __bad_udelay(); } } $ gcc -S -O2 builtin_constant_p.c $ grep __bad_udelay builtin_constant_p.s bl __bad_udelay >Fix: >Release-Note: >Audit-Trail: >Unformatted: