https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90976
--- Comment #2 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Jeffrey A. Law from comment #1) > Agreed, looks suspicious. From my reading of the code, I think using > "constraints" rather than "recog_data.constraints" is correct. > > The prior call to decode_asm_operands should have set up the constraint > strings into "constraints". I don't think "recog_data.constraints" will > necessarily have the right bits because the insn was not recognized (it's an > asm after all :-) > > So I think the obvious (and pre-approved) change here is to just eliminate > the initializer for p which uses recog_data.constraints. I did some investigation. The dead initializer was a part of initial LRA commit (in gcc-4.8). Probably it is some leftover from experimental LRA code which was changed very actively during its initial development. I am agree the dead initializer should be removed.