From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31943 invoked by alias); 6 May 2003 01:16: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 31923 invoked by uid 71); 6 May 2003 01:16:01 -0000 Date: Tue, 06 May 2003 01:16:00 -0000 Message-ID: <20030506011601.31909.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Pete Gonzalez Subject: Re: inline-asm/10396: Constraint alternatives cause error " `asm' operand requires impossible reload" Reply-To: Pete Gonzalez X-SW-Source: 2003-05/txt/msg00331.txt.bz2 List-Id: The following reply was made to PR inline-asm/10396; it has been noted by GNATS. From: Pete Gonzalez To: gcc-gnats@gcc.gnu.org,gcc-bugs@gcc.gnu.org,nobody@gcc.gnu.org, gcc-prs@gcc.gnu.org,gonz@ratloop.com Cc: Subject: Re: inline-asm/10396: Constraint alternatives cause error " `asm' operand requires impossible reload" Date: Mon, 05 May 2003 21:05:56 -0400 I tried the example again with the GCC 3.3 prerelease (20030428), but the "impossible reload" error is still being generated. For reference, here is the section from gcc/reload1.c which produces the error message: /* Substitute the chosen reload regs from reload_reg_rtx into the insn's body (or perhaps into the bodies of other load and store insn that we just made for reloading and that we moved the structure into). */ subst_reloads (insn); /* If this was an ASM, make sure that all the reload insns we have generated are valid. If not, give an error and delete them. */ if (asm_noperands (PATTERN (insn)) >= 0) for (p = NEXT_INSN (prev); p != next; p = NEXT_INSN (p)) if (p != insn && INSN_P (p) && GET_CODE (PATTERN (p)) != USE && (recog_memoized (p) < 0 || (extract_insn (p), ! constrain_operands (1)))) { error_for_asm (insn, "`asm' operand requires impossible reload"); delete_insn (p); } Once again, each of the constraint alternatives works fine by itself; it is only the combination of three alternatives that introduces the error.