From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4674 invoked by alias); 28 Oct 2012 20:34:49 -0000 Received: (qmail 4360 invoked by uid 22791); 28 Oct 2012 20:34:48 -0000 X-SWARE-Spam-Status: No, hits=-4.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_XR X-Spam-Check-By: sourceware.org Received: from mail-ia0-f169.google.com (HELO mail-ia0-f169.google.com) (209.85.210.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 28 Oct 2012 20:34:40 +0000 Received: by mail-ia0-f169.google.com with SMTP id h37so4268154iak.0 for ; Sun, 28 Oct 2012 13:34:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.236.6 with SMTP id uq6mr7670430igc.50.1351456480236; Sun, 28 Oct 2012 13:34:40 -0700 (PDT) Received: by 10.42.158.202 with HTTP; Sun, 28 Oct 2012 13:34:40 -0700 (PDT) Date: Sun, 28 Oct 2012 20:34:00 -0000 Message-ID: Subject: PR symtab/14441 - rvalue references From: Jonathan Wakely To: gdb@sourceware.org Content-Type: multipart/mixed; boundary=14dae93405996f148f04cd247bdc Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2012-10/txt/msg00108.txt.bz2 --14dae93405996f148f04cd247bdc Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2104 Hi, I'm trying to fix http://sourceware.org/bugzilla/show_bug.cgi?id=14441 by adding support for rvalue references. I plan to contribute this if I get it finished before anyone else fixes it, so I'll get a copyright assignment for GDB filed with the FSF clerk. My first attempt, shown in the attachment, was very simple: * added an rvalue_reference_type field to struct type * modified make_reference_type() to take an extra parameter indicating whether the type was an rvalue reference or lvalue reference * call the modified make_reference_type() when the debug info contains DW_TAG_rvalue_reference_type * adjust c_type_print_varspec_prefix() to print "&&" when type == TYPE_RVALUE_REFERENCE_TYPE (TYPE_TARGET_TYPE (type)) i.e. when the reference being printed is the target type's rvalue_reference_type, not its reference_type. That worked well enough to fix the problem shown in comment 2 on the PR, but didn't solve all cases. Saying "print r" or "ptype r" for an rvalue reference type displayed the type with a single ampersand rather than two. So my second attempt is more invasive, adding TYPE_CODE_RVAL_REF and changing everywhere that uses TYPE_CODE_REF to also handle the new type code. This gets me closer, fixing how types are displayed so now I get: (gdb) n 10 X&& xrr = X(); (gdb) 11 return; (gdb) p xrr $1 = (X &&) @0x7fffffffdd2f: {} (gdb) ptype xrr type = struct X { public: X & operator=(const X &); X & operator=(X &&); } && This is all great, but I'm not finished yet. I still get the wrong output if I take the address of an rvalue reference: (gdb) p &xrr $2 = (X &&*) 0x7fffffffdd30 As with a normal (lvalue) reference I should get the address of the reference's target, not the reference itself. Before I continue altering every function that checks TYPE_CODE_REF, is my approach the right one? Is adding TYPE_CODE_RVAL_REF and touching dozens of functions the best approach, or should I go back to my first attempt and just fix the few places that need to handle lvalue and rvalue references differently? --14dae93405996f148f04cd247bdc Content-Type: text/plain; charset=US-ASCII; name="patch-1.txt" Content-Disposition: attachment; filename="patch-1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h8um90d30 Content-length: 11013 ZGlmZiAtLWdpdCBhL2dkYi9jLXR5cGVwcmludC5jIGIvZ2RiL2MtdHlwZXBy aW50LmMKaW5kZXggOGI1YmMyMS4uYzVhYTJjNSAxMDA2NDQKLS0tIGEvZ2Ri L2MtdHlwZXByaW50LmMKKysrIGIvZ2RiL2MtdHlwZXByaW50LmMKQEAgLTI4 MCw3ICsyODAsMTAgQEAgY190eXBlX3ByaW50X3ZhcnNwZWNfcHJlZml4IChz dHJ1Y3QgdHlwZSAqdHlwZSwKICAgICBjYXNlIFRZUEVfQ09ERV9SRUY6CiAg ICAgICBjX3R5cGVfcHJpbnRfdmFyc3BlY19wcmVmaXggKFRZUEVfVEFSR0VU X1RZUEUgKHR5cGUpLAogCQkJCSAgIHN0cmVhbSwgc2hvdywgMSwgMCk7Ci0g ICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICImIik7CisgICAgICBp ZiAoVFlQRV9SVkFMVUVfUkVGRVJFTkNFX1RZUEUgKFRZUEVfVEFSR0VUX1RZ UEUgKHR5cGUpKSA9PSB0eXBlKQorCWZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIiYmIik7CisgICAgICBlbHNlCisJZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiJiIpOwogICAgICAgY190eXBlX3ByaW50X21vZGlmaWVyICh0eXBl LCBzdHJlYW0sIDEsIG5lZWRfcG9zdF9zcGFjZSk7CiAgICAgICBicmVhazsK IApkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJy ZWFkLmMKaW5kZXggMmRjYmEyMC4uMDBhN2VmNyAxMDA2NDQKLS0tIGEvZ2Ri L2R3YXJmMnJlYWQuYworKysgYi9nZGIvZHdhcmYycmVhZC5jCkBAIC03MDY5 LDYgKzcwNjksNyBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgIGNhc2UgRFdfVEFHX3Bv aW50ZXJfdHlwZToKICAgICBjYXNlIERXX1RBR19wdHJfdG9fbWVtYmVyX3R5 cGU6CiAgICAgY2FzZSBEV19UQUdfcmVmZXJlbmNlX3R5cGU6CisgICAgY2Fz ZSBEV19UQUdfcnZhbHVlX3JlZmVyZW5jZV90eXBlOgogICAgIGNhc2UgRFdf VEFHX3N0cmluZ190eXBlOgogICAgICAgYnJlYWs7CiAKQEAgLTExNDgxLDcg KzExNDgyLDggQEAgcmVhZF90YWdfcHRyX3RvX21lbWJlcl90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0 aGUgdXNlciBkZWZpbmVkIHR5cGUgdmVjdG9yLiAgKi8KIAogc3RhdGljIHN0 cnVjdCB0eXBlICoKLXJlYWRfdGFnX3JlZmVyZW5jZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitkb19yZWFk X3RhZ19yZWZlcmVuY2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1LAorCQkJICAgIGludCBydmFsdWVfcmVmKQog ewogICBzdHJ1Y3QgY29tcF91bml0X2hlYWQgKmN1X2hlYWRlciA9ICZjdS0+ aGVhZGVyOwogICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnRhcmdldF90eXBlOwpA QCAtMTE0OTQsNyArMTE0OTYsMTEgQEAgcmVhZF90YWdfcmVmZXJlbmNlX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgaWYgKHR5cGUpCiAgICAgcmV0dXJuIHR5cGU7CiAKLSAgdHlwZSA9 IGxvb2t1cF9yZWZlcmVuY2VfdHlwZSAodGFyZ2V0X3R5cGUpOworICBpZiAo cnZhbHVlX3JlZikKKyAgICB0eXBlID0gbG9va3VwX3J2YWx1ZV9yZWZlcmVu Y2VfdHlwZSAodGFyZ2V0X3R5cGUpOworICBlbHNlCisgICAgdHlwZSA9IGxv b2t1cF9yZWZlcmVuY2VfdHlwZSAodGFyZ2V0X3R5cGUpOworCiAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKICAg aWYgKGF0dHIpCiAgICAgewpAQCAtMTE1MDgsNiArMTE1MTQsMTggQEAgcmVh ZF90YWdfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKIH0KIAogc3RhdGljIHN0cnVjdCB0eXBl ICoKK3JlYWRfdGFnX3JlZmVyZW5jZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCit7CisgIHJldHVybiBkb19y ZWFkX3RhZ19yZWZlcmVuY2VfdHlwZSAoZGllLCBjdSwgMCk7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgdHlwZSAqCityZWFkX3RhZ19ydmFsdWVfcmVmZXJlbmNl X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKK3sKKyAgcmV0dXJuIGRvX3JlYWRfdGFnX3JlZmVyZW5jZV90eXBl IChkaWUsIGN1LCAxKTsKK30KKworc3RhdGljIHN0cnVjdCB0eXBlICoKIHJl YWRfdGFnX2NvbnN0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKIHsKICAgc3RydWN0IHR5cGUgKmJhc2VfdHlw ZSwgKmN2X3R5cGU7CkBAIC0xNTcyMSw2ICsxNTczOSw5IEBAIHJlYWRfdHlw ZV9kaWVfMSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgIGNhc2UgRFdfVEFHX3JlZmVyZW5jZV90eXBlOgogICAg ICAgdGhpc190eXBlID0gcmVhZF90YWdfcmVmZXJlbmNlX3R5cGUgKGRpZSwg Y3UpOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBEV19UQUdfcnZhbHVlX3Jl ZmVyZW5jZV90eXBlOgorICAgICAgdGhpc190eXBlID0gcmVhZF90YWdfcnZh bHVlX3JlZmVyZW5jZV90eXBlIChkaWUsIGN1KTsKKyAgICAgIGJyZWFrOwog ICAgIGNhc2UgRFdfVEFHX2NvbnN0X3R5cGU6CiAgICAgICB0aGlzX3R5cGUg PSByZWFkX3RhZ19jb25zdF90eXBlIChkaWUsIGN1KTsKICAgICAgIGJyZWFr OwpkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMu YwppbmRleCAxNDlkMzFmLi5hNTg4MDY2IDEwMDY0NAotLS0gYS9nZGIvZ2Ri dHlwZXMuYworKysgYi9nZGIvZ2RidHlwZXMuYwpAQCAtMzU5LDE1ICszNTks MjEgQEAgbG9va3VwX3BvaW50ZXJfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUp CiAvKiBMb29rdXAgYSBDKysgYHJlZmVyZW5jZScgdG8gYSB0eXBlIFRZUEUu ICBUWVBFUFRSLCBpZiBub256ZXJvLAogICAgcG9pbnRzIHRvIGEgcG9pbnRl ciB0byBtZW1vcnkgd2hlcmUgdGhlIHJlZmVyZW5jZSB0eXBlIHNob3VsZCBi ZQogICAgc3RvcmVkLiAgSWYgKlRZUEVQVFIgaXMgemVybywgdXBkYXRlIGl0 IHRvIHBvaW50IHRvIHRoZSByZWZlcmVuY2UKLSAgIHR5cGUgd2UgcmV0dXJu LiAgV2UgYWxsb2NhdGUgbmV3IG1lbW9yeSBpZiBuZWVkZWQuICAqLworICAg dHlwZSB3ZSByZXR1cm4uICBXZSBhbGxvY2F0ZSBuZXcgbWVtb3J5IGlmIG5l ZWRlZC4gIElmIFJWQUxVRV9SRUYKKyAgIGlzIHplcm8gbG9va3VwIGx2YWx1 ZSByZWZlcmVuY2UgdHlwZSwgb3RoZXJ3aXNlIHJ2YWx1ZSByZWZlcmVuY2UK KyAgIHR5cGUuICAqLwogCi1zdHJ1Y3QgdHlwZSAqCi1tYWtlX3JlZmVyZW5j ZV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKip0eXBl cHRyKQorc3RhdGljIHN0cnVjdCB0eXBlICoKK2RvX21ha2VfcmVmZXJlbmNl X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVw dHIsCisJCQlpbnQgcnZhbHVlX3JlZikKIHsKICAgc3RydWN0IHR5cGUgKm50 eXBlOwkvKiBOZXcgdHlwZSAqLwogICBzdHJ1Y3QgdHlwZSAqY2hhaW47CiAK LSAgbnR5cGUgPSBUWVBFX1JFRkVSRU5DRV9UWVBFICh0eXBlKTsKKyAgaWYg KHJ2YWx1ZV9yZWYpCisgICAgbnR5cGUgPSBUWVBFX1JWQUxVRV9SRUZFUkVO Q0VfVFlQRSAodHlwZSk7CisgIGVsc2UKKyAgICBudHlwZSA9IFRZUEVfUkVG RVJFTkNFX1RZUEUgKHR5cGUpOwogCiAgIGlmIChudHlwZSkKICAgICB7CkBA IC0zOTYsNyArNDAyLDEwIEBAIG1ha2VfcmVmZXJlbmNlX3R5cGUgKHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCiAgICAgfQog CiAgIFRZUEVfVEFSR0VUX1RZUEUgKG50eXBlKSA9IHR5cGU7Ci0gIFRZUEVf UkVGRVJFTkNFX1RZUEUgKHR5cGUpID0gbnR5cGU7CisgIGlmIChydmFsdWVf cmVmKQorICAgIFRZUEVfUlZBTFVFX1JFRkVSRU5DRV9UWVBFICh0eXBlKSA9 IG50eXBlOworICBlbHNlCisgICAgVFlQRV9SRUZFUkVOQ0VfVFlQRSAodHlw ZSkgPSBudHlwZTsKIAogICAvKiBGSVhNRSEgIEFzc3VtZSB0aGUgbWFjaGlu ZSBoYXMgb25seSBvbmUgcmVwcmVzZW50YXRpb24gZm9yCiAgICAgIHJlZmVy ZW5jZXMsIGFuZCB0aGF0IGl0IG1hdGNoZXMgdGhlIChvbmx5KSByZXByZXNl bnRhdGlvbiBmb3IKQEAgLTQwNiw5ICs0MTUsNiBAQCBtYWtlX3JlZmVyZW5j ZV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKip0eXBl cHRyKQogICAgIGdkYmFyY2hfcHRyX2JpdCAoZ2V0X3R5cGVfYXJjaCAodHlw ZSkpIC8gVEFSR0VUX0NIQVJfQklUOwogICBUWVBFX0NPREUgKG50eXBlKSA9 IFRZUEVfQ09ERV9SRUY7CiAKLSAgaWYgKCFUWVBFX1JFRkVSRU5DRV9UWVBF ICh0eXBlKSkJLyogUmVtZW1iZXIgaXQsIGlmIGRvbid0IGhhdmUgb25lLiAg Ki8KLSAgICBUWVBFX1JFRkVSRU5DRV9UWVBFICh0eXBlKSA9IG50eXBlOwot CiAgIC8qIFVwZGF0ZSB0aGUgbGVuZ3RoIG9mIGFsbCB0aGUgb3RoZXIgdmFy aWFudHMgb2YgdGhpcyB0eXBlLiAgKi8KICAgY2hhaW4gPSBUWVBFX0NIQUlO IChudHlwZSk7CiAgIHdoaWxlIChjaGFpbiAhPSBudHlwZSkKQEAgLTQyMCwx MyArNDI2LDM4IEBAIG1ha2VfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCiAgIHJldHVybiBudHlw ZTsKIH0KIAorLyogU2FtZSBhcyBhYm92ZSwgbG9va2luZyB1cCBsdmFsdWUg cmVmZXJlbmNlIHR5cGUuICAqLworCitzdHJ1Y3QgdHlwZSAqCittYWtlX3Jl ZmVyZW5jZV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUg Kip0eXBlcHRyKQoreworICByZXR1cm4gZG9fbWFrZV9yZWZlcmVuY2VfdHlw ZSAodHlwZSwgKHN0cnVjdCB0eXBlICoqKSAwLCAwKTsKK30KKwogLyogU2Ft ZSBhcyBhYm92ZSwgYnV0IGNhbGxlciBkb2Vzbid0IGNhcmUgYWJvdXQgbWVt b3J5IGFsbG9jYXRpb24KICAgIGRldGFpbHMuICAqLwogCiBzdHJ1Y3QgdHlw ZSAqCiBsb29rdXBfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBl KQogewotICByZXR1cm4gbWFrZV9yZWZlcmVuY2VfdHlwZSAodHlwZSwgKHN0 cnVjdCB0eXBlICoqKSAwKTsKKyAgcmV0dXJuIGRvX21ha2VfcmVmZXJlbmNl X3R5cGUgKHR5cGUsIChzdHJ1Y3QgdHlwZSAqKikgMCwgMCk7Cit9CisKKy8q IFNhbWUgYXMgbWFrZV9yZWZlcmVuY2VfdHlwZSwgYnV0IGxvb2tpbmcgdXAg cnZhbHVlIHJlZmVyZW5jZSB0eXBlLiAgKi8KKworc3RydWN0IHR5cGUgKgor bWFrZV9ydmFsdWVfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCit7CisgIHJldHVybiBkb19tYWtl X3JlZmVyZW5jZV90eXBlICh0eXBlLCAoc3RydWN0IHR5cGUgKiopIDAsIDEp OworfQorCisvKiBTYW1lIGFzIGFib3ZlLCBidXQgY2FsbGVyIGRvZXNuJ3Qg Y2FyZSBhYm91dCBtZW1vcnkgYWxsb2NhdGlvbgorICAgZGV0YWlscy4gICov CisKK3N0cnVjdCB0eXBlICoKK2xvb2t1cF9ydmFsdWVfcmVmZXJlbmNlX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlKQoreworICByZXR1cm4gZG9fbWFrZV9y ZWZlcmVuY2VfdHlwZSAodHlwZSwgKHN0cnVjdCB0eXBlICoqKSAwLCAxKTsK IH0KIAogLyogTG9va3VwIGEgZnVuY3Rpb24gdHlwZSB0aGF0IHJldHVybnMg dHlwZSBUWVBFLiAgVFlQRVBUUiwgaWYKQEAgLTU4Niw2ICs2MTcsNyBAQCBt YWtlX3F1YWxpZmllZF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG5l d19mbGFncywKICAgICAgdGhlIG5ldyB0eXBlLiAgKi8KICAgVFlQRV9QT0lO VEVSX1RZUEUgKG50eXBlKSA9IChzdHJ1Y3QgdHlwZSAqKSAwOwogICBUWVBF X1JFRkVSRU5DRV9UWVBFIChudHlwZSkgPSAoc3RydWN0IHR5cGUgKikgMDsK KyAgVFlQRV9SVkFMVUVfUkVGRVJFTkNFX1RZUEUgKG50eXBlKSA9IChzdHJ1 Y3QgdHlwZSAqKSAwOwogCiAgIC8qIENoYWluIHRoZSBuZXcgcXVhbGlmaWVk IHR5cGUgdG8gdGhlIG9sZCB0eXBlLiAgKi8KICAgVFlQRV9DSEFJTiAobnR5 cGUpID0gVFlQRV9DSEFJTiAodHlwZSk7CkBAIC0zMTY1LDYgKzMxOTcsOSBA QCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IHNwYWNlcykKICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAicmVmZXJl bmNlX3R5cGUgIik7CiAgIGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVf UkVGRVJFTkNFX1RZUEUgKHR5cGUpLCBnZGJfc3Rkb3V0KTsKICAgcHJpbnRm X2ZpbHRlcmVkICgiXG4iKTsKKyAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2Vz LCAicnZhbHVlX3JlZmVyZW5jZV90eXBlICIpOworICBnZGJfcHJpbnRfaG9z dF9hZGRyZXNzIChUWVBFX1JWQUxVRV9SRUZFUkVOQ0VfVFlQRSAodHlwZSks IGdkYl9zdGRvdXQpOworICBwcmludGZfZmlsdGVyZWQgKCJcbiIpOwogICBw cmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJ0eXBlX2NoYWluICIpOwogICBn ZGJfcHJpbnRfaG9zdF9hZGRyZXNzIChUWVBFX0NIQUlOICh0eXBlKSwgZ2Ri X3N0ZG91dCk7CiAgIHByaW50Zl9maWx0ZXJlZCAoIlxuIik7CmRpZmYgLS1n aXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCmluZGV4IDU5 YTZhNjUuLjYzNDVlN2QgMTAwNjQ0Ci0tLSBhL2dkYi9nZGJ0eXBlcy5oCisr KyBiL2dkYi9nZGJ0eXBlcy5oCkBAIC02NTAsOSArNjUwLDEwIEBAIHN0cnVj dCB0eXBlCiAKICAgc3RydWN0IHR5cGUgKnBvaW50ZXJfdHlwZTsKIAotICAv KiBDKys6IGFsc28gbmVlZCBhIHJlZmVyZW5jZSB0eXBlLiAgKi8KKyAgLyog QysrOiBhbHNvIG5lZWQgcmVmZXJlbmNlIHR5cGVzLiAgKi8KIAogICBzdHJ1 Y3QgdHlwZSAqcmVmZXJlbmNlX3R5cGU7CisgIHN0cnVjdCB0eXBlICpydmFs dWVfcmVmZXJlbmNlX3R5cGU7CiAKICAgLyogVmFyaWFudCBjaGFpbi4gIFRo aXMgcG9pbnRzIHRvIGEgdHlwZSB0aGF0IGRpZmZlcnMgZnJvbSB0aGlzIG9u ZSBvbmx5CiAgICAgIGluIHF1YWxpZmllcnMgYW5kIGxlbmd0aC4gIEN1cnJl bnRseSwgdGhlIHBvc3NpYmxlIHF1YWxpZmllcnMgYXJlCkBAIC0xMDUwLDYg KzEwNTEsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBl IChzdHJ1Y3QgdHlwZSAqKTsKICNkZWZpbmUgVFlQRV9UQVJHRVRfVFlQRSh0 aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT50YXJnZXRfdHlw ZQogI2RlZmluZSBUWVBFX1BPSU5URVJfVFlQRSh0aGlzdHlwZSkgKHRoaXN0 eXBlKS0+cG9pbnRlcl90eXBlCiAjZGVmaW5lIFRZUEVfUkVGRVJFTkNFX1RZ UEUodGhpc3R5cGUpICh0aGlzdHlwZSktPnJlZmVyZW5jZV90eXBlCisjZGVm aW5lIFRZUEVfUlZBTFVFX1JFRkVSRU5DRV9UWVBFKHRoaXN0eXBlKSAodGhp c3R5cGUpLT5ydmFsdWVfcmVmZXJlbmNlX3R5cGUKICNkZWZpbmUgVFlQRV9D SEFJTih0aGlzdHlwZSkgKHRoaXN0eXBlKS0+Y2hhaW4KIC8qIE5vdGUgdGhh dCBpZiB0aGlzdHlwZSBpcyBhIFRZUEVERUYgdHlwZSwgeW91IGhhdmUgdG8g Y2FsbCBjaGVja190eXBlZGVmLgogICAgQnV0IGNoZWNrX3R5cGVkZWYgZG9l cyBzZXQgdGhlIFRZUEVfTEVOR1RIIG9mIHRoZSBUWVBFREVGIHR5cGUsCkBA IC0xNDc1LDggKzE0NzcsMTIgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICppbml0 X3ZlY3Rvcl90eXBlIChzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUsIGludCBuKTsK IAogZXh0ZXJuIHN0cnVjdCB0eXBlICpsb29rdXBfcmVmZXJlbmNlX3R5cGUg KHN0cnVjdCB0eXBlICopOwogCitleHRlcm4gc3RydWN0IHR5cGUgKmxvb2t1 cF9ydmFsdWVfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0eXBlICopOworCiBl eHRlcm4gc3RydWN0IHR5cGUgKm1ha2VfcmVmZXJlbmNlX3R5cGUgKHN0cnVj dCB0eXBlICosIHN0cnVjdCB0eXBlICoqKTsKIAorZXh0ZXJuIHN0cnVjdCB0 eXBlICptYWtlX3J2YWx1ZV9yZWZlcmVuY2VfdHlwZSAoc3RydWN0IHR5cGUg Kiwgc3RydWN0IHR5cGUgKiopOworCiBleHRlcm4gc3RydWN0IHR5cGUgKm1h a2VfY3ZfdHlwZSAoaW50LCBpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB0 eXBlICoqKTsKIAogZXh0ZXJuIHZvaWQgcmVwbGFjZV90eXBlIChzdHJ1Y3Qg dHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsK --14dae93405996f148f04cd247bdc--