From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23292 invoked by alias); 2 Feb 2012 22:18:53 -0000 Received: (qmail 23283 invoked by uid 22791); 2 Feb 2012 22:18:52 -0000 X-SWARE-Spam-Status: No, hits=-3.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,TW_YM,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-qw0-f48.google.com (HELO mail-qw0-f48.google.com) (209.85.216.48) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 02 Feb 2012 22:18:39 +0000 Received: by qauh8 with SMTP id h8so2124184qau.0 for ; Thu, 02 Feb 2012 14:18:39 -0800 (PST) Received: by 10.224.95.196 with SMTP id e4mr6672281qan.63.1328221119091; Thu, 02 Feb 2012 14:18:39 -0800 (PST) MIME-Version: 1.0 Received: by 10.224.95.196 with SMTP id e4mr6672272qan.63.1328221119003; Thu, 02 Feb 2012 14:18:39 -0800 (PST) Received: by 10.224.179.194 with HTTP; Thu, 2 Feb 2012 14:18:38 -0800 (PST) Date: Thu, 02 Feb 2012 22:18:00 -0000 Message-ID: Subject: [PATCH][GOLD] Fix lower bound for number of bits. From: =?UTF-8?B?RG91ZyBLd2FuICjpl5zmjK/lvrcp?= To: Ian Lance Taylor , binutils X-System-Of-Record: true Content-Type: multipart/mixed; boundary=20cf3063e355fb3c9304b8029368 X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2012-02/txt/msg00020.txt.bz2 --20cf3063e355fb3c9304b8029368 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 811 Hi Ian, I noticed that you move the Bits class template from arm.cc to reloc.h recently. I found that the minimum number of bits is 0 in various methods, this is mostly likely my bug. If bits == 0, expressions like "1U << (bits - 1)" are undefined. If changed lower bound from 0 to 1 in all assertions in the Bits class template. In addition, I also change some related code in arm.cc. This is tested on both x86_64 and ARM. -Doug 2012-02-02 Doug Kwan * arm.cc (Arm_relocate_functions::abs8, Arm_relocate_functions::abs16): Use Bits::has_signed_unsigned_overflow32. (Arm_relocate_functions::thm_abs8): Correct range of overflow check. * reloc.h (Bits class): Change minimum number of bits from 0 to 1 in assertions. --20cf3063e355fb3c9304b8029368 Content-Type: text/plain; charset=US-ASCII; name="patch-bits.txt" Content-Disposition: attachment; filename="patch-bits.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gy6cjocs0 Content-length: 5405 PyBnb2xkL2F1dG9tNHRlLmNhY2hlCkluZGV4OiBnb2xkL2FybS5jYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ29s ZC9hcm0uY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTQ1CmRpZmYgLXUg LXUgLXAgLXIxLjE0NSBhcm0uY2MKLS0tIGdvbGQvYXJtLmNjCTIgRmViIDIw MTIgMjA6MjE6MTcgLTAwMDAJMS4xNDUKKysrIGdvbGQvYXJtLmNjCTIgRmVi IDIwMTIgMjI6MDY6NDMgLTAwMDAKQEAgLTMxODMsOCArMzE4Myw3IEBAIGNs YXNzIEFybV9yZWxvY2F0ZV9mdW5jdGlvbnMgOiBwdWJsaWMgUmUKICAgICBl bGZjcHA6OlN3YXA8OCwgYmlnX2VuZGlhbj46OndyaXRldmFsKHd2LCB2YWwp OwogCiAgICAgLy8gUl9BUk1fQUJTOCBwZXJtaXRzIHNpZ25lZCBvciB1bnNp Z25lZCByZXN1bHRzLgotICAgIGludCBzaWduZWRfeCA9IHN0YXRpY19jYXN0 PGludDMyX3Q+KHgpOwotICAgIHJldHVybiAoKHNpZ25lZF94IDwgLTEyOCB8 fCBzaWduZWRfeCA+IDI1NSkKKyAgICByZXR1cm4gKEJpdHM8OD46Omhhc19z aWduZWRfdW5zaWduZWRfb3ZlcmZsb3czMih4KQogCSAgICA/IFRoaXM6OlNU QVRVU19PVkVSRkxPVwogCSAgICA6IFRoaXM6OlNUQVRVU19PS0FZKTsKICAg fQpAQCAtMzIwMywxMCArMzIwMiw3IEBAIGNsYXNzIEFybV9yZWxvY2F0ZV9m dW5jdGlvbnMgOiBwdWJsaWMgUmUKICAgICBSZWx0eXBlIHggPSBwc3ltdmFs LT52YWx1ZShvYmplY3QsIGFkZGVuZCk7CiAgICAgdmFsID0gQml0czwzMj46 OmJpdF9zZWxlY3QzMih2YWwsIHggPDwgNiwgMHg3ZTBVKTsKICAgICBlbGZj cHA6OlN3YXA8MTYsIGJpZ19lbmRpYW4+Ojp3cml0ZXZhbCh3diwgdmFsKTsK LQotICAgIC8vIFJfQVJNX0FCUzE2IHBlcm1pdHMgc2lnbmVkIG9yIHVuc2ln bmVkIHJlc3VsdHMuCi0gICAgaW50IHNpZ25lZF94ID0gc3RhdGljX2Nhc3Q8 aW50MzJfdD4oeCk7Ci0gICAgcmV0dXJuICgoc2lnbmVkX3ggPCAtMzI3Njgg fHwgc2lnbmVkX3ggPiA2NTUzNSkKKyAgICByZXR1cm4gKEJpdHM8NT46Omhh c19vdmVyZmxvdzMyKHgpCiAJICAgID8gVGhpczo6U1RBVFVTX09WRVJGTE9X CiAJICAgIDogVGhpczo6U1RBVFVTX09LQVkpOwogICB9CkBAIC0zMjQ1LDgg KzMyNDEsNyBAQCBjbGFzcyBBcm1fcmVsb2NhdGVfZnVuY3Rpb25zIDogcHVi bGljIFJlCiAgICAgZWxmY3BwOjpTd2FwX3VuYWxpZ25lZDwxNiwgYmlnX2Vu ZGlhbj46OndyaXRldmFsKHZpZXcsIHZhbCk7CiAKICAgICAvLyBSX0FSTV9B QlMxNiBwZXJtaXRzIHNpZ25lZCBvciB1bnNpZ25lZCByZXN1bHRzLgotICAg IGludCBzaWduZWRfeCA9IHN0YXRpY19jYXN0PGludDMyX3Q+KHgpOwotICAg IHJldHVybiAoKHNpZ25lZF94IDwgLTMyNzY4IHx8IHNpZ25lZF94ID4gNjU1 MzYpCisgICAgcmV0dXJuIChCaXRzPDE2Pjo6aGFzX3NpZ25lZF91bnNpZ25l ZF9vdmVyZmxvdzMyKHgpCiAJICAgID8gVGhpczo6U1RBVFVTX09WRVJGTE9X CiAJICAgIDogVGhpczo6U1RBVFVTX09LQVkpOwogICB9CkluZGV4OiBnb2xk L3JlbG9jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2 cy9zcmMvc3JjL2dvbGQvcmVsb2MuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g MS4zNApkaWZmIC11IC11IC1wIC1yMS4zNCByZWxvYy5oCi0tLSBnb2xkL3Jl bG9jLmgJMjggSmFuIDIwMTIgMDE6NDc6MDEgLTAwMDAJMS4zNAorKysgZ29s ZC9yZWxvYy5oCTIgRmViIDIwMTIgMjI6MDY6NDMgLTAwMDAKQEAgLTcyNCwx MSArNzI0LDExIEBAIGNsYXNzIEJpdHMKIHsKICBwdWJsaWM6CiAgIC8vIFNp Z24gZXh0ZW5kIGFuIG4tYml0IHVuc2lnbmVkIGludGVnZXIgc3RvcmVkIGlu IGEgdWludDMyX3QgaW50bwotICAvLyBhbiBpbnQzMl90LiAgQklUUyBtdXN0 IGJlIGJldHdlZW4gMCBhbmQgMzIuCisgIC8vIGFuIGludDMyX3QuICBCSVRT IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAzMi4KICAgc3RhdGljIGlubGluZSBp bnQzMl90CiAgIHNpZ25fZXh0ZW5kMzIodWludDMyX3QgdmFsKQogICB7Ci0g ICAgZ29sZF9hc3NlcnQoYml0cyA+PSAwICYmIGJpdHMgPD0gMzIpOworICAg IGdvbGRfYXNzZXJ0KGJpdHMgPiAwICYmIGJpdHMgPD0gMzIpOwogICAgIGlm IChiaXRzID09IDMyKQogICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMy X3Q+KHZhbCk7CiAgICAgdWludDMyX3QgbWFzayA9ICh+c3RhdGljX2Nhc3Q8 dWludDMyX3Q+KDApKSA+PiAoMzIgLSBiaXRzKTsKQEAgLTc0NSw3ICs3NDUs NyBAQCBjbGFzcyBCaXRzCiAgIHN0YXRpYyBpbmxpbmUgYm9vbAogICBoYXNf b3ZlcmZsb3czMih1aW50MzJfdCB2YWwpCiAgIHsKLSAgICBnb2xkX2Fzc2Vy dChiaXRzID49IDAgJiYgYml0cyA8PSAzMik7CisgICAgZ29sZF9hc3NlcnQo Yml0cyA+IDAgJiYgYml0cyA8PSAzMik7CiAgICAgaWYgKGJpdHMgPT0gMzIp CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50MzJfdCBtYXggPSAoMSA8 PCAoYml0cyAtIDEpKSAtIDE7CkBAIC03NjEsNyArNzYxLDcgQEAgY2xhc3Mg Qml0cwogICBzdGF0aWMgaW5saW5lIGJvb2wKICAgaGFzX3NpZ25lZF91bnNp Z25lZF9vdmVyZmxvdzMyKHVpbnQzMl90IHZhbCkKICAgewotICAgIGdvbGRf YXNzZXJ0KGJpdHMgPj0gMCAmJiBiaXRzIDw9IDMyKTsKKyAgICBnb2xkX2Fz c2VydChiaXRzID4gMCAmJiBiaXRzIDw9IDMyKTsKICAgICBpZiAoYml0cyA9 PSAzMikKICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpbnQzMl90IG1heCA9 IHN0YXRpY19jYXN0PGludDMyX3Q+KCgxVSA8PCBiaXRzKSAtIDEpOwpAQCAt Nzc4LDExICs3NzgsMTEgQEAgY2xhc3MgQml0cwogICB7IHJldHVybiAoYSAm IH5tYXNrKSB8IChiICYgbWFzayk7IH0KIAogICAvLyBTaWduIGV4dGVuZCBh biBuLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHN0b3JlZCBpbiBhIHVpbnQ2NF90 IGludG8KLSAgLy8gYW4gaW50NjRfdC4gIEJJVFMgbXVzdCBiZSBiZXR3ZWVu IDAgYW5kIDY0LgorICAvLyBhbiBpbnQ2NF90LiAgQklUUyBtdXN0IGJlIGJl dHdlZW4gMSBhbmQgNjQuCiAgIHN0YXRpYyBpbmxpbmUgaW50NjRfdAogICBz aWduX2V4dGVuZCh1aW50NjRfdCB2YWwpCiAgIHsKLSAgICBnb2xkX2Fzc2Vy dChiaXRzID49IDAgJiYgYml0cyA8PSA2NCk7CisgICAgZ29sZF9hc3NlcnQo Yml0cyA+IDAgJiYgYml0cyA8PSA2NCk7CiAgICAgaWYgKGJpdHMgPT0gNjQp CiAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsKTsKICAg ICB1aW50NjRfdCBtYXNrID0gKH5zdGF0aWNfY2FzdDx1aW50NjRfdD4oMCkp ID4+ICg2NCAtIGJpdHMpOwpAQCAtNzk5LDcgKzc5OSw3IEBAIGNsYXNzIEJp dHMKICAgc3RhdGljIGlubGluZSBib29sCiAgIGhhc19vdmVyZmxvdyh1aW50 NjRfdCB2YWwpCiAgIHsKLSAgICBnb2xkX2Fzc2VydChiaXRzID49IDAgJiYg Yml0cyA8PSA2NCk7CisgICAgZ29sZF9hc3NlcnQoYml0cyA+IDAgJiYgYml0 cyA8PSA2NCk7CiAgICAgaWYgKGJpdHMgPT0gNjQpCiAgICAgICByZXR1cm4g ZmFsc2U7CiAgICAgaW50NjRfdCBtYXggPSAoc3RhdGljX2Nhc3Q8aW50NjRf dD4oMSkgPDwgKGJpdHMgLSAxKSkgLSAxOwpAQCAtODE1LDcgKzgxNSw3IEBA IGNsYXNzIEJpdHMKICAgc3RhdGljIGlubGluZSBib29sCiAgIGhhc19zaWdu ZWRfdW5zaWduZWRfb3ZlcmZsb3c2NCh1aW50NjRfdCB2YWwpCiAgIHsKLSAg ICBnb2xkX2Fzc2VydChiaXRzID49IDAgJiYgYml0cyA8PSA2NCk7CisgICAg Z29sZF9hc3NlcnQoYml0cyA+IDAgJiYgYml0cyA8PSA2NCk7CiAgICAgaWYg KGJpdHMgPT0gNjQpCiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50NjRf dCBtYXggPSBzdGF0aWNfY2FzdDxpbnQ2NF90Pigoc3RhdGljX2Nhc3Q8dWlu dDY0X3Q+KDEpIDw8IGJpdHMpIC0gMSk7Cg== --20cf3063e355fb3c9304b8029368--