From mboxrd@z Thu Jan 1 00:00:00 1970 From: hubicka@freesoft.cz To: gcc-gnats@gcc.gnu.org Subject: c/2888: crash in reload on eliminating register in REG_EQUAL note containing ASM_OUTPUT Date: Mon, 21 May 2001 04:26:00 -0000 Message-id: <20010521111758.26226.qmail@sourceware.cygnus.com> X-SW-Source: 2001-05/msg00583.html List-Id: >Number: 2888 >Category: c >Synopsis: crash in reload on eliminating register in REG_EQUAL note containing ASM_OUTPUT >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon May 21 04:26:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: hubicka@freesoft.cz >Release: 3.1 >Organization: >Environment: i386 mailne CVS >Description: the attached testcase is x86_64 testcase converted to i386, so it produces incorrect assembly, but should compile fluently. Regression over 2.95, not tested on the branch. >How-To-Repeat: gcc -O2 qq.i -S >Fix: do not use -O2 :) teach reload to fix ASM_OPERANDS or remove the note? >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="qq.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="qq.i" IyAxICIvaG9tZS9odWJpY2thL3Rlc3QzLmMiCiMgMSAiL2hvbWUvaHViaWNrYS94ODYtNjQvbGlu dXgvaW5jbHVkZS9hc20vdW5pc3RkLmgiIDEKIyAyICIvaG9tZS9odWJpY2thL3Rlc3QzLmMiIDIK CnR5cGVkZWYgbG9uZyBvZmZfdDsKdHlwZWRlZiBpbnQgcGlkX3Q7CmludCBlcnJubzsKCgpzdGF0 aWMgaW5saW5lIGludCBwYXVzZSh2b2lkKSB7IGxvbmcgX19yZXM7IF9fYXNtX18gdm9sYXRpbGUg KCJzeXNjYWxsIiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAoMjQpIDogImVieCIsImVjeCIsIm1lbW9y eSIgKTsgZG8geyBpZiAoKHVuc2lnbmVkIGxvbmcpKF9fcmVzKSA+PSAodW5zaWduZWQgbG9uZyko LTEyNykpIHsgZXJybm8gPSAtKF9fcmVzKTsgX19yZXMgPSAtMTsgfSByZXR1cm4gKGludCkgKF9f cmVzKTsgfSB3aGlsZSAoMCk7IH0Kc3RhdGljIGlubGluZSBpbnQgc3luYyh2b2lkKSB7IGxvbmcg X19yZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJzeXNjYWxsIiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAo MjcpIDogImVieCIsImVjeCIsIm1lbW9yeSIgKTsgZG8geyBpZiAoKHVuc2lnbmVkIGxvbmcpKF9f cmVzKSA+PSAodW5zaWduZWQgbG9uZykoLTEyNykpIHsgZXJybm8gPSAtKF9fcmVzKTsgX19yZXMg PSAtMTsgfSByZXR1cm4gKGludCkgKF9fcmVzKTsgfSB3aGlsZSAoMCk7IH0Kc3RhdGljIGlubGlu ZSBpbnQgZm9yayh2b2lkKSB7IGxvbmcgX19yZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJzeXNjYWxs IiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAoMTUzKSA6ICJlYngiLCJlY3giLCJtZW1vcnkiICk7IGRv IHsgaWYgKCh1bnNpZ25lZCBsb25nKShfX3JlcykgPj0gKHVuc2lnbmVkIGxvbmcpKC0xMjcpKSB7 IGVycm5vID0gLShfX3Jlcyk7IF9fcmVzID0gLTE7IH0gcmV0dXJuIChpbnQpIChfX3Jlcyk7IH0g d2hpbGUgKDApOyB9CnN0YXRpYyBpbmxpbmUgcGlkX3Qgc2V0c2lkKHZvaWQpIHsgbG9uZyBfX3Jl czsgX19hc21fXyB2b2xhdGlsZSAoInN5c2NhbGwiIDogIj1hIiAoX19yZXMpIDogIjAiICg1MCkg OiAiZWJ4IiwiZWN4IiwibWVtb3J5IiApOyBkbyB7IGlmICgodW5zaWduZWQgbG9uZykoX19yZXMp ID49ICh1bnNpZ25lZCBsb25nKSgtMTI3KSkgeyBlcnJubyA9IC0oX19yZXMpOyBfX3JlcyA9IC0x OyB9IHJldHVybiAocGlkX3QpIChfX3Jlcyk7IH0gd2hpbGUgKDApOyB9CnN0YXRpYyBpbmxpbmUg aW50IHdyaXRlKGludCBmZCxjb25zdCBjaGFyICogYnVmLG9mZl90IGNvdW50KSB7IGxvbmcgX19y ZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJzeXNjYWxsIiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAoNCks IkQiICgobG9uZykoZmQpKSwiUyIgKChsb25nKShidWYpKSwgImQiICgobG9uZykoY291bnQpKSA6 ICJlYngiLCJtZW1vcnkiKTsgZG8geyBpZiAoKHVuc2lnbmVkIGxvbmcpKF9fcmVzKSA+PSAodW5z aWduZWQgbG9uZykoLTEyNykpIHsgZXJybm8gPSAtKF9fcmVzKTsgX19yZXMgPSAtMTsgfSByZXR1 cm4gKGludCkgKF9fcmVzKTsgfSB3aGlsZSAoMCk7IH0Kc3RhdGljIGlubGluZSBpbnQgcmVhZChp bnQgZmQsY2hhciAqIGJ1ZixvZmZfdCBjb3VudCkgeyBsb25nIF9fcmVzOyBfX2FzbV9fIHZvbGF0 aWxlICgic3lzY2FsbCIgOiAiPWEiIChfX3JlcykgOiAiMCIgKDMpLCJEIiAoKGxvbmcpKGZkKSks IlMiICgobG9uZykoYnVmKSksICJkIiAoKGxvbmcpKGNvdW50KSkgOiAiZWJ4IiwibWVtb3J5IiAp OyBkbyB7IGlmICgodW5zaWduZWQgbG9uZykoX19yZXMpID49ICh1bnNpZ25lZCBsb25nKSgtMTI3 KSkgeyBlcnJubyA9IC0oX19yZXMpOyBfX3JlcyA9IC0xOyB9IHJldHVybiAoaW50KSAoX19yZXMp OyB9IHdoaWxlICgwKTsgfQpzdGF0aWMgaW5saW5lIG9mZl90IGxzZWVrKGludCBmZCxvZmZfdCBv ZmZzZXQsaW50IGNvdW50KSB7IGxvbmcgX19yZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJzeXNjYWxs IiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAoMTYpLCJEIiAoKGxvbmcpKGZkKSksIlMiICgobG9uZyko b2Zmc2V0KSksICJkIiAoKGxvbmcpKGNvdW50KSkgOiAiZWJ4IiwibWVtb3J5IiApOyBkbyB7IGlm ICgodW5zaWduZWQgbG9uZykoX19yZXMpID49ICh1bnNpZ25lZCBsb25nKSgtMTI3KSkgeyBlcnJu byA9IC0oX19yZXMpOyBfX3JlcyA9IC0xOyB9IHJldHVybiAob2ZmX3QpIChfX3Jlcyk7IH0gd2hp bGUgKDApOyB9CnN0YXRpYyBpbmxpbmUgaW50IGR1cChpbnQgZmQpIHsgbG9uZyBfX3JlczsgX19h c21fXyB2b2xhdGlsZSAoInN5c2NhbGwiIDogIj1hIiAoX19yZXMpIDogIjAiICgzMiksIkQiICgo bG9uZykoZmQpKSA6ICJlYngiLCJtZW1vcnkiICk7IGRvIHsgaWYgKCh1bnNpZ25lZCBsb25nKShf X3JlcykgPj0gKHVuc2lnbmVkIGxvbmcpKC0xMjcpKSB7IGVycm5vID0gLShfX3Jlcyk7IF9fcmVz ID0gLTE7IH0gcmV0dXJuIChpbnQpIChfX3Jlcyk7IH0gd2hpbGUgKDApOyB9CnN0YXRpYyBpbmxp bmUgaW50IGV4ZWN2ZShjb25zdCBjaGFyICogZmlsZSxjaGFyICoqIGFyZ3YsY2hhciAqKiBlbnZw KSB7IGxvbmcgX19yZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJzeXNjYWxsIiA6ICI9YSIgKF9fcmVz KSA6ICIwIiAoMTApLCJEIiAoKGxvbmcpKGZpbGUpKSwiUyIgKChsb25nKShhcmd2KSksICJkIiAo KGxvbmcpKGVudnApKSA6ICJlYngiLCJtZW1vcnkiKTsgZG8geyBpZiAoKHVuc2lnbmVkIGxvbmcp KF9fcmVzKSA+PSAodW5zaWduZWQgbG9uZykoLTEyNykpIHsgZXJybm8gPSAtKF9fcmVzKTsgX19y ZXMgPSAtMTsgfSByZXR1cm4gKGludCkgKF9fcmVzKTsgfSB3aGlsZSAoMCk7IH0Kc3RhdGljIGlu bGluZSBpbnQgb3Blbihjb25zdCBjaGFyICogZmlsZSxpbnQgZmxhZyxpbnQgbW9kZSkgeyBsb25n IF9fcmVzOyBfX2FzbV9fIHZvbGF0aWxlICgic3lzY2FsbCIgOiAiPWEiIChfX3JlcykgOiAiMCIg KDUpLCJEIiAoKGxvbmcpKGZpbGUpKSwiUyIgKChsb25nKShmbGFnKSksICJkIiAoKGxvbmcpKG1v ZGUpKSA6ICJlYngiLCJtZW1vcnkiICk7IGRvIHsgaWYgKCh1bnNpZ25lZCBsb25nKShfX3Jlcykg Pj0gKHVuc2lnbmVkIGxvbmcpKC0xMjcpKSB7IGVycm5vID0gLShfX3Jlcyk7IF9fcmVzID0gLTE7 IH0gcmV0dXJuIChpbnQpIChfX3Jlcyk7IH0gd2hpbGUgKDApOyB9CnN0YXRpYyBpbmxpbmUgaW50 IGNsb3NlKGludCBmZCkgeyBsb25nIF9fcmVzOyBfX2FzbV9fIHZvbGF0aWxlICgic3lzY2FsbCIg OiAiPWEiIChfX3JlcykgOiAiMCIgKDYpLCJEIiAoKGxvbmcpKGZkKSkgOiAiZWJ4IiwibWVtb3J5 IiApOyBkbyB7IGlmICgodW5zaWduZWQgbG9uZykoX19yZXMpID49ICh1bnNpZ25lZCBsb25nKSgt MTI3KSkgeyBlcnJubyA9IC0oX19yZXMpOyBfX3JlcyA9IC0xOyB9IHJldHVybiAoaW50KSAoX19y ZXMpOyB9IHdoaWxlICgwKTsgfQpzdGF0aWMgaW5saW5lIGludCBfZXhpdChpbnQgZXhpdGNvZGUp IHsgbG9uZyBfX3JlczsgX19hc21fXyB2b2xhdGlsZSAoInN5c2NhbGwiIDogIj1hIiAoX19yZXMp IDogIjAiICgyKSwiRCIgKChsb25nKShleGl0Y29kZSkpIDogImVieCIsIm1lbW9yeSIgKTsgZG8g eyBpZiAoKHVuc2lnbmVkIGxvbmcpKF9fcmVzKSA+PSAodW5zaWduZWQgbG9uZykoLTEyNykpIHsg ZXJybm8gPSAtKF9fcmVzKTsgX19yZXMgPSAtMTsgfSByZXR1cm4gKGludCkgKF9fcmVzKTsgfSB3 aGlsZSAoMCk7IH0Kc3RhdGljIGlubGluZSBpbnQgZGVsZXRlX21vZHVsZShjb25zdCBjaGFyICog bmFtZSkgeyBsb25nIF9fcmVzOyBfX2FzbV9fIHZvbGF0aWxlICgic3lzY2FsbCIgOiAiPWEiIChf X3JlcykgOiAiMCIgKDk2KSwiRCIgKChsb25nKShuYW1lKSkgOiAiZWJ4IiwibWVtb3J5IiApOyBk byB7IGlmICgodW5zaWduZWQgbG9uZykoX19yZXMpID49ICh1bnNpZ25lZCBsb25nKSgtMTI3KSkg eyBlcnJubyA9IC0oX19yZXMpOyBfX3JlcyA9IC0xOyB9IHJldHVybiAoaW50KSAoX19yZXMpOyB9 IHdoaWxlICgwKTsgfQpzdGF0aWMgaW5saW5lIGludCBnZXRwaWQodm9pZCkgeyBsb25nIF9fcmVz OyBfX2FzbV9fIHZvbGF0aWxlICgic3lzY2FsbCIgOiAiPWEiIChfX3JlcykgOiAiMCIgKDE3KSA6 ICJlYngiLCJtZW1vcnkiICk7IGRvIHsgaWYgKCh1bnNpZ25lZCBsb25nKShfX3JlcykgPj0gKHVu c2lnbmVkIGxvbmcpKC0xMjcpKSB7IGVycm5vID0gLShfX3Jlcyk7IF9fcmVzID0gLTE7IH0gcmV0 dXJuIChpbnQpIChfX3Jlcyk7IH0gd2hpbGUgKDApOyB9CnN0YXRpYyBpbmxpbmUgdm9pZCAqIHJ0 X3NpZ2FjdGlvbiAoaW50IHdoaWNoLCB2b2lkICogYWN0MSwgdm9pZCAqIGFjdDIsIGludCBzaXpl KSB7IGxvbmcgX19yZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJtb3ZxICU1LCUlcjEwIDsiICJzeXNj YWxsIiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAoMTM4KSwiRCIgKChsb25nKSh3aGljaCkpLCJTIiAo KGxvbmcpKGFjdDEpKSwgImQiICgobG9uZykoYWN0MikpLCJnIiAoKGxvbmcpKHNpemUpKSA6ICJl YngiLCJtZW1vcnkiICk7IGRvIHsgaWYgKCh1bnNpZ25lZCBsb25nKShfX3JlcykgPj0gKHVuc2ln bmVkIGxvbmcpKC0xMjcpKSB7IGVycm5vID0gLShfX3Jlcyk7IF9fcmVzID0gLTE7IH0gcmV0dXJu ICh2b2lkICopIChfX3Jlcyk7IH0gd2hpbGUgKDApOyB9CnN0YXRpYyBpbmxpbmUgaW50IGtpbGwo aW50IHdoaWNoLGludCB3aGF0KSB7IGxvbmcgX19yZXM7IF9fYXNtX18gdm9sYXRpbGUgKCJzeXNj YWxsIiA6ICI9YSIgKF9fcmVzKSA6ICIwIiAoMjgpLCJEIiAoKGxvbmcpKHdoaWNoKSksIlMiICgo bG9uZykod2hhdCkpIDogImVieCIsIm1lbW9yeSIgKTsgZG8geyBpZiAoKHVuc2lnbmVkIGxvbmcp KF9fcmVzKSA+PSAodW5zaWduZWQgbG9uZykoLTEyNykpIHsgZXJybm8gPSAtKF9fcmVzKTsgX19y ZXMgPSAtMTsgfSByZXR1cm4gKGludCkgKF9fcmVzKTsgfSB3aGlsZSAoMCk7IH0KCgoKCgoKCnR5 cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2lnc2V0X3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAg ICAgdW5zaWduZWQgbG9uZyBzaWdbKDY0IC8gNjQpXTsKfSBzaWdzZXRfdDsKCnN0cnVjdCBzaWdh Y3Rpb24gewogICAgICAgIHZvaWQgKCpzYV9oYW5kbGVyKShpbnQpOwogICAgICAgIHVuc2lnbmVk IGxvbmcgc2FfZmxhZ3M7CiAgICAgICAgdm9pZCAoKnNhX3Jlc3RvcmVyKSh2b2lkKTsKICAgICAg ICBzaWdzZXRfdCBzYV9tYXNrOwp9OwoKdm9pZAp1bnVzZWQodm9pZCkKewogIGFzbSB2b2xhdGls ZSgiLmZpbGwgICA0OTIsOCwwIik7Cn0KCnZvaWQKcHV0cyhjaGFyICpzKQp7CiAgaW50IGkgPSAw OwogIHdoaWxlIChzW2ldKSBpKys7CiAgd3JpdGUoMSwgcywgaSk7Cn0KCnZvaWQKcHV0bnVtKGlu dCBpKQp7CiAgd2hpbGUgKGkpIHsKICAgIGNoYXIgYyA9IGklMTAgKyAnMCc7CiAgICBwdXRzKCJf Iik7CiAgICBpIC89IDEwOwogICAgd3JpdGUoMSwgJmMsIDEpOwogIH0KfQoKdm9pZApzaWdmdW5j dCh2b2lkKQp7CiAgcHV0cygidGVzdDM6IEhleSwgSSBnb3QgYSBzaWduYWwhICIpOyBwdXRudW0o Z2V0cGlkKCkpOyBwdXRzKCJcbiIpOwp9Cgp2b2lkCnJlc3RvcmVyKHZvaWQpCnsKICBwdXRzKCJ0 ZXN0MzogSGV5LCB0aGlzIGlzIHJlc3RvcmVyLi4uPyEgIik7IHB1dG51bShnZXRwaWQoKSk7IHB1 dHMoIlxuIik7Cn0KCgoKdm9pZApfc3RhcnQodm9pZCkKewogIHN0cnVjdCBzaWdhY3Rpb24gYWN0 ID0geyAodm9pZCAqKSBzaWdmdW5jdCwgMHgwNDAwMDAwMCwgcmVzdG9yZXIsIHsgMCwgMCB9IH07 CiAgaW50IGksIHBhcmVudDsKICBwdXRzKCJUaGlzIGlzIHRlc3QzXG4iKTsKICBwdXRzKCJ0ZXN0 MzogQ2FsbGluZyBzaWdhY3Rpb24gYW5kIGdldHBpZFxuIik7CiAgcnRfc2lnYWN0aW9uKDEsICZh Y3QsICgodm9pZCAqKSAwKSwgc2l6ZW9mKHNpZ3NldF90KSk7CiAgcGFyZW50PWdldHBpZCgpOwog IHB1dHMoInRlc3QzOiBUZXN0aW5nIGZvcmtcbiIpOwogIGkgPSBmb3JrKCk7CiAgcHV0cygidGVz dDM6IEZvcmsgb2theVxuIik7CgoKCgoKCiAgaWYgKGkpIHsKICAgIHJ0X3NpZ2FjdGlvbigxLCAm YWN0LCAoKHZvaWQgKikgMCksIHNpemVvZihzaWdzZXRfdCkpOwogICAgcHV0cygidGVzdDM6IFRo aXMgaXMgcGFyZW50OiAiKTsgcHV0bnVtKGdldHBpZCgpKTsgcHV0cygiY2hpbGQgaXMgIik7IHB1 dG51bShpKTsgcHV0cygiXG4iKTsKCgoKICAgIHB1dHMoInRlc3QzLCBwYXJlbnQ6IHNwaW5uaW5n IG9uIGNwdSFcbiIpOwogICAgewogICAgICBpbnQgajsKICAgICAgZm9yIChqPTA7IGo8MTAwMDAw MDsgaisrKSB7CiAgICAgICAgaWYgKCEoaiAlIDEwMDAwKSkKICAgICAgICAgIHB1dHMoIi4iKTsK ICAgICAgICBhc20gdm9sYXRpbGUoIiIpOwogICAgICB9CiAgICB9CgogICAgd2hpbGUoMSkgewog ICAgICBwdXRzKCJ0aWNrIik7CiAgICAgIHBhdXNlKCk7CiAgICB9CiAgfSBlbHNlIHsKICAgIHB1 dHMoInRlc3QzOiBUaGlzIGlzIGNoaWxkXG4iKTsKICAgIHB1dHMoInRlc3QzOiBraWxsaW5nIHBh cmVudCwgSSdtIG5hdWdodHkga2lkXG4iKTsKICAgIGtpbGwocGFyZW50LCAxKTsKICAgIHB1dHMo InRlc3QzOiBOb3RoaW5nIG1vcmUgdG8gZG9cbiIpOwogIH0KICBwdXRzKCJ0ZXN0MzogKGV4aXRp bmcpXG4iKTsKCiAgX2V4aXQoMCk7Cn0K