This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
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 <dw@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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |