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.
Problem:
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.
ChangeLog:
2014-07-27 David Wohlferd <d...@limegreensocks.com>
PR target/61692
* cfgexpand.c (expand_asm_operands): Count all inline asm
parameters.
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.
dw