This is the mail archive of the
mailing list for the GCC project.
Re: [Patch] PR 61692 - Fix for inline asm ICE
- From: David Wohlferd <dw at LimeGreenSocks dot com>
- To: Jeff Law <law at redhat dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 28 Jul 2014 15:39:03 -0700
- Subject: Re: [Patch] PR 61692 - Fix for inline asm ICE
- Authentication-results: sourceware.org; auth=none
- References: <53D4A9A2 dot 2050402 at LimeGreenSocks dot com> <53D6A79E dot 8060300 at redhat dot com>
On 7/28/2014 12:42 PM, Jeff Law wrote:
On 07/27/14 01:26, David Wohlferd wrote:
I'm not sure which maintainer to cc for inline asm stuff?
I have a release on file with the FSF, but don't have SVN write access.
extract_insn() in recog.c will ICE if (noperands > MAX_RECOG_OPERANDS).
Normally this isn't a problem since expand_asm_operands() in cfgexpand.c
catches and reports a proper error for this condition. However,
expand_asm_operands() only checks (ninputs + noutputs) instead of
(ninputs + noutputs + nlabels), so you can get the ICE when using "asm
goto." See the bugzilla entry for sample code.
2014-07-27 David Wohlferd <dw@LimeGreenSocks.com>
* cfgexpand.c (expand_asm_operands): Count all inline asm
You should also include 'nclobbers'.
Reading thru asm_noperands (which is what extract_insn uses to count
operands), I would have thought you were right. But while making this
fail with nLabels was easy, I wasn't able to get this to ICE at all
using clobbers (30 labels + 11 clobbers still didn't ICE).
And I'm reluctant to propose that change unless I can see it fail.