From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13785 invoked by alias); 2 Dec 2013 19:28:54 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 13774 invoked by uid 89); 2 Dec 2013 19:28:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.8 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: mail-ea0-f175.google.com Received: from Unknown (HELO mail-ea0-f175.google.com) (209.85.215.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 02 Dec 2013 19:28:52 +0000 Received: by mail-ea0-f175.google.com with SMTP id z10so9330405ead.6 for ; Mon, 02 Dec 2013 11:28:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=lOiA+RhyD2wqC5GQwud64/l0/ZRAbrrS9um5KXbHubs=; b=eMYSwCH88CwaLS+UW6voIMkrhkR9ZefaJIourWZ9aO8h9S5bg2iI3F2L9TJ+uEyeww qJc1oS+umkbEi51KZRqicbHZmIPHHzxQ/RsiQF2ZUZU496/8gE3l4xs8w0/nHbAVQpHp yMuS2ZRwaTEWWypRrTWe33CyO5dvJufHl1BNNq35OEYxuBwJe5wkK7Mg3mjPmFCrS0GI U7JqVoDd+HeVAvBAgdmEQDcSjlQZ2/C/Qbzh3ZeGIY55Wxkwj6w8xXCoY1aEzKKHNf0X dzy+V7oqzdUKZ7qlsG8ZOL99pu1D6RFUGMkLMpgMLnGNp1kfldIg6bCCaGa736B7ZIzo Vpgg== X-Gm-Message-State: ALoCoQk0Z5v8Xr4X2fBMN5TR4bN6aXQ51O+mVMi3PlK4z9opNo0R8reMpz3GzHg6ogiR+v3umPdiLvUb/8IMJhu0M1R5icqcGzZsb6UyN3jHnpzOc77j2PmKputDpVh8wAwUu7Od8vpCmWQiTlpC+ivU+ZCjTfXm0rX7GxXRiN/BxJyHKi8DOg92DnyimyH1l4OZX5P8xVxB4xJXnGwHPuq3e2Nu2RsVHA== MIME-Version: 1.0 X-Received: by 10.15.61.134 with SMTP id i6mr3174781eex.48.1386012522775; Mon, 02 Dec 2013 11:28:42 -0800 (PST) Received: by 10.14.151.72 with HTTP; Mon, 2 Dec 2013 11:28:42 -0800 (PST) Date: Mon, 02 Dec 2013 19:28:00 -0000 Message-ID: Subject: [RFC/Patch] Call overloaded operators to perform valid Python operations on struct/class values. From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=089e016816761324bb04ec9230fc X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00045.txt.bz2 --089e016816761324bb04ec9230fc Content-Type: text/plain; charset=ISO-8859-1 Content-length: 803 Hi, This is a follow up to this thread: https://sourceware.org/ml/gdb/2013-11/msg00101.html Part of Doug's response there seemed to indicate that calling overloaded operators to perform valid Python operations has not yet been implemented. The attached patch adds this "feature". I could not yet think of a reason as to why adding this could be bad (as in, leading to ambiguity or something similar). ChangeLog 2013-12-02 Siva Chandra Reddy Call overloaded operators to perform valid Python operations on struct/class values. * python/py-value.c (valpy_binop): Call value_x_binop for struct and class values. testsuite/ * gdb.python/py-value-cc.cc: Improve test case. * gdb.python/py-value-cc.exp: Add new tests. --089e016816761324bb04ec9230fc Content-Type: text/plain; charset=US-ASCII; name="python_op_patch_v1.txt" Content-Disposition: attachment; filename="python_op_patch_v1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hoq3z3aq0 Content-length: 8667 ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktdmFsdWUuYyBiL2dkYi9weXRo b24vcHktdmFsdWUuYwppbmRleCA0MDI1NGI5Li4yMmMyZGJjIDEwMDY0NAot LS0gYS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKKysrIGIvZ2RiL3B5dGhvbi9w eS12YWx1ZS5jCkBAIC03NjIsNiArNzYyLDggQEAgdmFscHlfYmlub3AgKGVu dW0gdmFscHlfb3Bjb2RlIG9wY29kZSwgUHlPYmplY3QgKnNlbGYsIFB5T2Jq ZWN0ICpvdGhlcikKICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnMSwgKmFyZzI7 CiAgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cCA9IG1ha2VfY2xlYW51 cF92YWx1ZV9mcmVlX3RvX21hcmsgKHZhbHVlX21hcmsgKCkpOwogICAgICAg c3RydWN0IHZhbHVlICpyZXNfdmFsID0gTlVMTDsKKyAgICAgIGVudW0gZXhw X29wY29kZSBvcCA9IE9QX05VTEw7CisgICAgICBpbnQgaGFuZGxlZCA9IDA7 CiAKICAgICAgIC8qIElmIHRoZSBnZGIuVmFsdWUgb2JqZWN0IGlzIHRoZSBz ZWNvbmQgb3BlcmFuZCwgdGhlbiBpdCB3aWxsIGJlIHBhc3NlZAogCSB0byB1 cyBhcyB0aGUgT1RIRVIgYXJndW1lbnQsIGFuZCBTRUxGIHdpbGwgYmUgYW4g ZW50aXJlbHkgZGlmZmVyZW50CkBAIC03OTMsNiArNzk1LDcgQEAgdmFscHlf Ymlub3AgKGVudW0gdmFscHlfb3Bjb2RlIG9wY29kZSwgUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICpvdGhlcikKIAkgICAgQ0hFQ0tfVFlQRURFRiAocnR5 cGUpOwogCSAgICBydHlwZSA9IFNUUklQX1JFRkVSRU5DRSAocnR5cGUpOwog CisgICAgICAgICAgICBoYW5kbGVkID0gMTsKIAkgICAgaWYgKFRZUEVfQ09E RSAobHR5cGUpID09IFRZUEVfQ09ERV9QVFIKIAkJJiYgaXNfaW50ZWdyYWxf dHlwZSAocnR5cGUpKQogCSAgICAgIHJlc192YWwgPSB2YWx1ZV9wdHJhZGQg KGFyZzEsIHZhbHVlX2FzX2xvbmcgKGFyZzIpKTsKQEAgLTgwMCw3ICs4MDMs MTAgQEAgdmFscHlfYmlub3AgKGVudW0gdmFscHlfb3Bjb2RlIG9wY29kZSwg UHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvdGhlcikKIAkJICAgICAmJiBp c19pbnRlZ3JhbF90eXBlIChsdHlwZSkpCiAJICAgICAgcmVzX3ZhbCA9IHZh bHVlX3B0cmFkZCAoYXJnMiwgdmFsdWVfYXNfbG9uZyAoYXJnMSkpOwogCSAg ICBlbHNlCi0JICAgICAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBh cmcyLCBCSU5PUF9BREQpOworICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgaGFuZGxlZCA9IDA7CisgICAgICAgICAgICAgICAgb3AgPSBCSU5P UF9BREQ7CisgICAgICAgICAgICAgIH0KIAkgIH0KIAkgIGJyZWFrOwogCWNh c2UgVkFMUFlfU1VCOgpAQCAtODEzLDYgKzgxOSw3IEBAIHZhbHB5X2Jpbm9w IChlbnVtIHZhbHB5X29wY29kZSBvcGNvZGUsIFB5T2JqZWN0ICpzZWxmLCBQ eU9iamVjdCAqb3RoZXIpCiAJICAgIENIRUNLX1RZUEVERUYgKHJ0eXBlKTsK IAkgICAgcnR5cGUgPSBTVFJJUF9SRUZFUkVOQ0UgKHJ0eXBlKTsKIAorICAg ICAgICAgICAgaGFuZGxlZCA9IDE7CiAJICAgIGlmIChUWVBFX0NPREUgKGx0 eXBlKSA9PSBUWVBFX0NPREVfUFRSCiAJCSYmIFRZUEVfQ09ERSAocnR5cGUp ID09IFRZUEVfQ09ERV9QVFIpCiAJICAgICAgLyogQSBwdHJkaWZmX3QgZm9y IHRoZSB0YXJnZXQgd291bGQgYmUgcHJlZmVyYWJsZSBoZXJlLiAgKi8KQEAg LTgyMiwzOCArODI5LDQ5IEBAIHZhbHB5X2Jpbm9wIChlbnVtIHZhbHB5X29w Y29kZSBvcGNvZGUsIFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIp CiAJCSAgICAgJiYgaXNfaW50ZWdyYWxfdHlwZSAocnR5cGUpKQogCSAgICAg IHJlc192YWwgPSB2YWx1ZV9wdHJhZGQgKGFyZzEsIC0gdmFsdWVfYXNfbG9u ZyAoYXJnMikpOwogCSAgICBlbHNlCi0JICAgICAgcmVzX3ZhbCA9IHZhbHVl X2Jpbm9wIChhcmcxLCBhcmcyLCBCSU5PUF9TVUIpOworICAgICAgICAgICAg ICB7CisJICAgICAgICAgaGFuZGxlZCA9IDA7CisgICAgICAgICAgICAgICAg IG9wID0gQklOT1BfU1VCOworICAgICAgICAgICAgICB9CiAJICB9CiAJICBi cmVhazsKIAljYXNlIFZBTFBZX01VTDoKLQkgIHJlc192YWwgPSB2YWx1ZV9i aW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfTVVMKTsKKwkgIG9wID0gQklOT1Bf TVVMOwogCSAgYnJlYWs7CiAJY2FzZSBWQUxQWV9ESVY6Ci0JICByZXNfdmFs ID0gdmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0RJVik7CisJICBv cCA9IEJJTk9QX0RJVjsKIAkgIGJyZWFrOwogCWNhc2UgVkFMUFlfUkVNOgot CSAgcmVzX3ZhbCA9IHZhbHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBCSU5PUF9S RU0pOworCSAgb3AgPSBCSU5PUF9SRU07CiAJICBicmVhazsKIAljYXNlIFZB TFBZX1BPVzoKLQkgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJn MiwgQklOT1BfRVhQKTsKKwkgIG9wID0gQklOT1BfRVhQOwogCSAgYnJlYWs7 CiAJY2FzZSBWQUxQWV9MU0g6Ci0JICByZXNfdmFsID0gdmFsdWVfYmlub3Ag KGFyZzEsIGFyZzIsIEJJTk9QX0xTSCk7CisJICBvcCA9IEJJTk9QX0xTSDsK IAkgIGJyZWFrOwogCWNhc2UgVkFMUFlfUlNIOgotCSAgcmVzX3ZhbCA9IHZh bHVlX2Jpbm9wIChhcmcxLCBhcmcyLCBCSU5PUF9SU0gpOworCSAgb3AgPSBC SU5PUF9SU0g7CiAJICBicmVhazsKIAljYXNlIFZBTFBZX0JJVEFORDoKLQkg IHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJnMiwgQklOT1BfQklU V0lTRV9BTkQpOworCSAgb3AgPSBCSU5PUF9CSVRXSVNFX0FORDsKIAkgIGJy ZWFrOwogCWNhc2UgVkFMUFlfQklUT1I6Ci0JICByZXNfdmFsID0gdmFsdWVf Ymlub3AgKGFyZzEsIGFyZzIsIEJJTk9QX0JJVFdJU0VfSU9SKTsKKwkgIG9w ID0gQklOT1BfQklUV0lTRV9JT1I7CiAJICBicmVhazsKIAljYXNlIFZBTFBZ X0JJVFhPUjoKLQkgIHJlc192YWwgPSB2YWx1ZV9iaW5vcCAoYXJnMSwgYXJn MiwgQklOT1BfQklUV0lTRV9YT1IpOworCSAgb3AgPSBCSU5PUF9CSVRXSVNF X1hPUjsKIAkgIGJyZWFrOwogCX0KIAorICAgICAgaWYgKCFoYW5kbGVkKQor ICAgICAgICB7CisgICAgICAgICAgaWYgKGJpbm9wX3VzZXJfZGVmaW5lZF9w IChvcCwgYXJnMSwgYXJnMikpCisgICAgICAgICAgICByZXNfdmFsID0gdmFs dWVfeF9iaW5vcCAoYXJnMSwgYXJnMiwgb3AsIE9QX05VTEwsIEVWQUxfTk9S TUFMKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICByZXNfdmFsID0g dmFsdWVfYmlub3AgKGFyZzEsIGFyZzIsIG9wKTsKKyAgICAgICAgfQorCiAg ICAgICBpZiAocmVzX3ZhbCkKIAlyZXN1bHQgPSB2YWx1ZV90b192YWx1ZV9v YmplY3QgKHJlc192YWwpOwogCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktdmFsdWUtY2MuY2MgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktdmFsdWUtY2MuY2MKaW5kZXggYzAxMGZjOS4uZmY2MDVj NCAxMDA2NDQKLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZh bHVlLWNjLmNjCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12 YWx1ZS1jYy5jYwpAQCAtMTYsOCArMTYsMTkgQEAKICAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KIAogY2xhc3MgQSB7CisgcHVibGljOgorICBp bnQgb3BlcmF0b3IrIChjb25zdCBpbnQgYSk7CisKKyBwdWJsaWM6CisgIGlu dCBhXzsKIH07CiAKK2ludAorQTo6b3BlcmF0b3IrIChjb25zdCBpbnQgYSkK K3sKKyAgcmV0dXJuIGEgKyBhXzsKK30KKwogdHlwZWRlZiBpbnQgKmludF9w dHI7CiAKIGludApAQCAtMzUsNSArNDYsOCBAQCBpbnQKIG1haW4gKCkKIHsK ICAgQSBvYmo7CisKKyAgb2JqLmFfID0gNTsKKwogICByZXR1cm4gZnVuYyAo b2JqKTsKIH0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS12YWx1ZS1jYy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktdmFsdWUtY2MuZXhwCmluZGV4IDU1YzNiOTcuLjAyNmRlYjUgMTAwNjQ0 Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS1jYy5l eHAKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLWNj LmV4cApAQCAtMzQsMTMgKzM0LDMwIEBAIGlmICFbcnVudG9fbWFpbl0gewog Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJyZWFrIGhl cmUuIl0KIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCcmVhayBoZXJl IiAiLipCcmVhayBoZXJlLioiCiAKLWdkYl90ZXN0ICJweXRob24gcHJpbnQg KHN0cihnZGIucGFyc2VfYW5kX2V2YWwoXCJhXCIpLnR5cGUpKSIgImNvbnN0 IEEgJiIKLWdkYl90ZXN0ICJweXRob24gcHJpbnQgKHN0cihnZGIucGFyc2Vf YW5kX2V2YWwoXCJhXCIpLnJlZmVyZW5jZWRfdmFsdWUoKS50eXBlKSkiICJj b25zdCBBIgotZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoc3RyKGdkYi5wYXJz ZV9hbmRfZXZhbChcImludF9yZWZcIikudHlwZSkpIiAiaW50ICYiCi1nZGJf dGVzdCAicHl0aG9uIHByaW50IChzdHIoZ2RiLnBhcnNlX2FuZF9ldmFsKFwi aW50X3JlZlwiKS5yZWZlcmVuY2VkX3ZhbHVlKCkudHlwZSkpIiAiaW50Igot Z2RiX3Rlc3QgInB5dGhvbiBwcmludCAoc3RyKGdkYi5wYXJzZV9hbmRfZXZh bChcImludF9yZWZcIikucmVmZXJlbmNlZF92YWx1ZSgpKSkiICIxMCIKLQot Z2RiX3Rlc3QgInB5dGhvbiBwcmludCAoc3RyKGdkYi5wYXJzZV9hbmRfZXZh bChcImludF9wdHJfcmVmXCIpLmRlcmVmZXJlbmNlKCkudHlwZSkpIiAiaW50 IgotZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoc3RyKGdkYi5wYXJzZV9hbmRf ZXZhbChcImludF9wdHJfcmVmXCIpLnJlZmVyZW5jZWRfdmFsdWUoKS50eXBl KSkiICJpbnRfcHRyIgotZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoc3RyKGdk Yi5wYXJzZV9hbmRfZXZhbChcImludF9wdHJfcmVmXCIpLnJlZmVyZW5jZWRf dmFsdWUoKS5kZXJlZmVyZW5jZSgpKSkiICIxMCIKLWdkYl90ZXN0ICJweXRo b24gcHJpbnQgKHN0cihnZGIucGFyc2VfYW5kX2V2YWwoXCJpbnRfcHRyX3Jl ZlwiKS5yZWZlcmVuY2VkX3ZhbHVlKCkucmVmZXJlbmNlZF92YWx1ZSgpKSki ICIxMCIKK2dkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGEgPSBnZGIucGFy c2VfYW5kX2V2YWwoJ2EnKSIgImV2YWwgYSIKK2dkYl90ZXN0X25vX291dHB1 dCAicHl0aG9uIGludF9yZWYgPSBnZGIucGFyc2VfYW5kX2V2YWwoJ2ludF9y ZWYnKSIgXAorICAiZXZhbCBpbnRfcmVmIgorZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJweXRob24gaW50X3B0cl9yZWYgPSBnZGIucGFyc2VfYW5kX2V2YWwoJ2lu dF9wdHJfcmVmJykiIFwKKyAgImV2YWwgaW50X3B0cl9yZWYiCisKKyMgVGVz dHMgZm9yIGdkYi5WYWx1ZS5yZWZlcmVuY2VkX3ZhbHVlKCkKK2dkYl90ZXN0 ICJweXRob24gcHJpbnQgc3RyKGEudHlwZSkiICJjb25zdCBBICYiICJhLnR5 cGUiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0cihhLnJlZmVyZW5jZWRf dmFsdWUoKS50eXBlKSIgImNvbnN0IEEiIFwKKyAgImEucmVmZXJlbmNlZF92 YWx1ZSgpLnR5cGUiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0cihpbnRf cmVmLnR5cGUpIiAiaW50ICYiICJpbnRfcmVmLnR5cGUiCitnZGJfdGVzdCAi cHl0aG9uIHByaW50IHN0cihpbnRfcmVmLnJlZmVyZW5jZWRfdmFsdWUoKS50 eXBlKSIgImludCIgXAorICAiaW50X3JlZi5yZWZlcmVuY2VkX3ZhbHVlKCku dHlwZSIKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgc3RyKGludF9yZWYucmVm ZXJlbmNlZF92YWx1ZSgpKSIgIjEwIiBcCisgICJpbnRfcmVmLnJlZmVyZW5j ZWRfdmFsdWUoKSIKKworZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBzdHIoaW50 X3B0cl9yZWYuZGVyZWZlcmVuY2UoKS50eXBlKSIgImludCIgXAorICAiaW50 X3B0cl9yZWYuZGVyZWZlcmVuY2UoKS50eXBlIgorZ2RiX3Rlc3QgInB5dGhv biBwcmludCBzdHIoaW50X3B0cl9yZWYucmVmZXJlbmNlZF92YWx1ZSgpLnR5 cGUpIiAiaW50X3B0ciIgXAorICAiaW50X3B0cl9yZWYucmVmZXJlbmNlZF92 YWx1ZSgpLnR5cGUiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0cihpbnRf cHRyX3JlZi5yZWZlcmVuY2VkX3ZhbHVlKCkuZGVyZWZlcmVuY2UoKSkiIFwK KyAgIjEwIiAiaW50X3B0cl9yZWYucmVmZXJlbmNlZF92YWx1ZSgpLmRlcmVm ZXJlbmNlKCkiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0cihpbnRfcHRy X3JlZi5yZWZlcmVuY2VkX3ZhbHVlKCkucmVmZXJlbmNlZF92YWx1ZSgpKSIg XAorICAiMTAiICJpbnRfcHRyX3JlZi5yZWZlcmVuY2VkX3ZhbHVlKCkucmVm ZXJlbmNlZF92YWx1ZSgpIgorCisjIFRlc3Qgb3ZlcmxvYWRlZCBvcGVyYXRv cnMuCitnZGJfdGVzdCAicHl0aG9uIHByaW50IGEgKyA1IiAiMTAiICJhICsg NSIK --089e016816761324bb04ec9230fc--