From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11027 invoked by alias); 22 Nov 2007 15:41:44 -0000 Received: (qmail 10999 invoked by uid 48); 22 Nov 2007 15:41:32 -0000 Date: Thu, 22 Nov 2007 15:41:00 -0000 Message-ID: <20071122154132.10998.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug inline-asm/23200] [4.0/4.1/4.2/4.3 regression] rejects "i"(&var + 1) In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-11/txt/msg02122.txt.bz2 ------- Comment #31 from jakub at gcc dot gnu dot org 2007-11-22 15:41 ------- Could we perhaps for !optimize allow in ASM input operands arbitrary tree expressions if TREE_CONSTANT for operands which !allows_mem && !allows_reg? Then we'd just need to make sure the few -O0 passes are able to cope with it and adjust gimplifier to do that and verification to accept that. For -O0 expecting int i = 1; asm ("" :: "i" (i)); to work is certainly bad assumption, so it is enough to preserve what the user used in the inline asm. I guess only nesting and omp passes would care, those can transform a valid "i" operand into invalid one. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23200