From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8288 invoked by alias); 9 Jun 2013 01:20:38 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 8243 invoked by uid 89); 9 Jun 2013 01:20:34 -0000 X-Spam-SWARE-Status: No, score=-6.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_PASS,TW_TM autolearn=ham version=3.3.1 X-Spam-User: qpsmtpd, 2 recipients Received: from mga02.intel.com (HELO mga02.intel.com) (134.134.136.20) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Sun, 09 Jun 2013 01:20:32 +0000 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 08 Jun 2013 18:20:20 -0700 X-ExtLoop1: 1 Received: from fmsmsx106.amr.corp.intel.com ([10.19.9.37]) by orsmga001.jf.intel.com with ESMTP; 08 Jun 2013 18:20:20 -0700 Received: from fmsmsx101.amr.corp.intel.com ([169.254.1.135]) by FMSMSX106.amr.corp.intel.com ([169.254.6.10]) with mapi id 14.03.0123.003; Sat, 8 Jun 2013 18:20:20 -0700 From: "Iyer, Balaji V" To: "gcc-patches@gcc.gnu.org" CC: Jakub Jelinek , "mpolacek@gcc.gnu.org" Subject: [PATCH] Fix for PR c/57563 Date: Sun, 09 Jun 2013 01:20:00 -0000 Message-ID: Content-Type: multipart/mixed; boundary="_002_BF230D13CA30DD48930C31D4099330003A42D3CAFMSMSX101amrcor_" MIME-Version: 1.0 X-Virus-Found: No X-SW-Source: 2013-06/txt/msg00464.txt.bz2 --_002_BF230D13CA30DD48930C31D4099330003A42D3CAFMSMSX101amrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1980 Hello Everyone, Attached, please find a patch that will fix the bug reported in PR 57563. = There are a couple issues that went wrong. First, in the test case, we have= a double multiplied to a double. When -std=3Dc99 flag is used, they get co= nverted to long double. The way to fix this is to add a type cast to the ar= ray notation to the same type as identity variable and thus they will all b= e double.=20 The second issue, was that a sec_reduce_mutating function takes in the add= ress of a "mutating variable" (i.e. the variable that will hold the result)= , the array notation and a function pointer. For example, for the following= code: int a[10], x =3D 0; void function_name (int *p, int r); __sec_reduce_mutating (&x, a[0:10], function_name); __sec_reduce_mutating should be converted to: for (ii =3D0; ii < 10; ii++) function_name (&x, a[ii]); In the test case I was not representing this correctly (as shown in the co= nversion above), but just computing the value that the function should do, = thus making the test flaky. I made this fix in the test case. The other adv= antage of this change is that, in future I can change the what the function= does (maybe with #defines and have multiple checks for different function = body) and I don't have to change a lot of things. I tried the patch on x86 and x86_64 and it works fine. I am assuming -m32 o= n x86_64 should have the same behavior as x86. So, is this OK for trunk? Here are the Changelog entries: gcc/c/ChangeLog 2013-06-08 Balaji V. Iyer * c-array-notation.c (fix_builtin_array_notation_fn): Added a cast for all the usage of function parameter to match the identity var. gcc/testsuite/ChangeLog 2013-06-08 Balaji V. Iyer PR c/57563 * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c (main): Fixed a b= ug in how we check __sec_reduce_mutating function's result. Thanks, Balaji V. Iyer. --_002_BF230D13CA30DD48930C31D4099330003A42D3CAFMSMSX101amrcor_ Content-Type: text/plain; name="patch_pr57563.txt" Content-Description: patch_pr57563.txt Content-Disposition: attachment; filename="patch_pr57563.txt"; size=5902; creation-date="Sun, 09 Jun 2013 00:21:53 GMT"; modification-date="Sat, 08 Jun 2013 23:57:43 GMT" Content-Transfer-Encoding: base64 Content-length: 8004 ZGlmZiAtLWdpdCBhL2djYy9jL0NoYW5nZUxvZyBiL2djYy9jL0NoYW5nZUxv ZwppbmRleCA1ZmJiMzFmLi5jYWYyMTQ2IDEwMDY0NApCaW5hcnkgZmlsZXMg YS9nY2MvYy9DaGFuZ2VMb2cgYW5kIGIvZ2NjL2MvQ2hhbmdlTG9nIGRpZmZl cgpkaWZmIC0tZ2l0IGEvZ2NjL2MvYy1hcnJheS1ub3RhdGlvbi5jIGIvZ2Nj L2MvYy1hcnJheS1ub3RhdGlvbi5jCmluZGV4IGIxMDQwZGEuLjE5MTRhMjQg MTAwNjQ0Ci0tLSBhL2djYy9jL2MtYXJyYXktbm90YXRpb24uYworKysgYi9n Y2MvYy9jLWFycmF5LW5vdGF0aW9uLmMKQEAgLTEzMyw3ICsxMzMsNyBAQCBm aXhfYnVpbHRpbl9hcnJheV9ub3RhdGlvbl9mbiAodHJlZSBhbl9idWlsdGlu X2ZuLCB0cmVlICpuZXdfdmFyKQogICBib29sICoqY291bnRfZG93biwgKiph cnJheV92ZWN0b3I7CiAgIGxvY2F0aW9uX3QgbG9jYXRpb24gPSBVTktOT1dO X0xPQ0FUSU9OOwogICB0cmVlIGxvb3Bfd2l0aF9pbml0ID0gYWxsb2Nfc3Rt dF9saXN0ICgpOwotICAKKyAgdHJlZSBuZXdfY29tcF9leHByID0gTlVMTF9U UkVFLCBpZGVudGl0eV9leHByID0gTlVMTF9UUkVFOwogICBlbnVtIGJ1aWx0 X2luX2Z1bmN0aW9uIGFuX3R5cGUgPQogICAgIGlzX2NpbGtwbHVzX3JlZHVj ZV9idWlsdGluIChDQUxMX0VYUFJfRk4gKGFuX2J1aWx0aW5fZm4pKTsKICAg aWYgKGFuX3R5cGUgPT0gQlVJTFRfSU5fTk9ORSkKQEAgLTQ4MywxMCArNDgz LDEyIEBAIGZpeF9idWlsdGluX2FycmF5X25vdGF0aW9uX2ZuICh0cmVlIGFu X2J1aWx0aW5fZm4sIHRyZWUgKm5ld192YXIpCiAgICAgICBuZXdfeWVzX2V4 cHIgPSBidWlsZF9tb2RpZnlfZXhwcgogCShsb2NhdGlvbiwgKm5ld192YXIs IFRSRUVfVFlQRSAoKm5ld192YXIpLCBOT1BfRVhQUiwKIAkgbG9jYXRpb24s IGZ1bmNfcGFybSwgVFJFRV9UWVBFICgqbmV3X3ZhcikpOwotICAgICAgbmV3 X2V4cHIgPSBidWlsZF9jb25kaXRpb25hbF9leHByCi0JKGxvY2F0aW9uLAot CSBidWlsZDIgKExUX0VYUFIsIFRSRUVfVFlQRSAoKm5ld192YXIpLCAqbmV3 X3ZhciwgZnVuY19wYXJtKSwgZmFsc2UsCi0JIG5ld195ZXNfZXhwciwgVFJF RV9UWVBFICgqbmV3X3ZhciksIG5ld19ub19leHByLCBUUkVFX1RZUEUgKCpu ZXdfdmFyKSk7CisgICAgICBuZXdfY29tcF9leHByID0gYnVpbGQyIChMVF9F WFBSLCBUUkVFX1RZUEUgKCpuZXdfdmFyKSwgKm5ld192YXIsCisJCQkgICAg ICBidWlsZF9jX2Nhc3QgKGxvY2F0aW9uLCBUUkVFX1RZUEUgKCpuZXdfdmFy KSwKKwkJCQkJICAgIGZ1bmNfcGFybSkpOworICAgICAgbmV3X2V4cHIgPSBi dWlsZF9jb25kaXRpb25hbF9leHByIChsb2NhdGlvbiwgbmV3X2NvbXBfZXhw ciwgZmFsc2UsCisJCQkJCSBuZXdfeWVzX2V4cHIsIFRSRUVfVFlQRSAoKm5l d192YXIpLAorCQkJCQkgbmV3X25vX2V4cHIsIFRSRUVfVFlQRSAoKm5ld192 YXIpKTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgQlVJTFRfSU5fQ0lMS1BM VVNfU0VDX1JFRFVDRV9NSU46CiAgICAgICBpZiAoVFlQRV9NQVhfVkFMVUUg KG5ld192YXJfdHlwZSkpCkBAIC01MDMsMTAgKzUwNSwxMiBAQCBmaXhfYnVp bHRpbl9hcnJheV9ub3RhdGlvbl9mbiAodHJlZSBhbl9idWlsdGluX2ZuLCB0 cmVlICpuZXdfdmFyKQogICAgICAgbmV3X3llc19leHByID0gYnVpbGRfbW9k aWZ5X2V4cHIKIAkobG9jYXRpb24sICpuZXdfdmFyLCBUUkVFX1RZUEUgKCpu ZXdfdmFyKSwgTk9QX0VYUFIsCiAJIGxvY2F0aW9uLCBmdW5jX3Bhcm0sIFRS RUVfVFlQRSAoKm5ld192YXIpKTsKLSAgICAgIG5ld19leHByID0gYnVpbGRf Y29uZGl0aW9uYWxfZXhwcgotCShsb2NhdGlvbiwKLQkgYnVpbGQyIChHVF9F WFBSLCBUUkVFX1RZUEUgKCpuZXdfdmFyKSwgKm5ld192YXIsIGZ1bmNfcGFy bSksIGZhbHNlLAotCSBuZXdfeWVzX2V4cHIsIFRSRUVfVFlQRSAoKm5ld192 YXIpLCBuZXdfbm9fZXhwciwgVFJFRV9UWVBFICgqbmV3X3ZhcikpOworICAg ICAgbmV3X2NvbXBfZXhwciA9IGJ1aWxkMiAoR1RfRVhQUiwgVFJFRV9UWVBF ICgqbmV3X3ZhciksICpuZXdfdmFyLAorCQkJICAgICAgYnVpbGRfY19jYXN0 IChsb2NhdGlvbiwgVFJFRV9UWVBFICgqbmV3X3ZhciksCisJCQkJCSAgICBm dW5jX3Bhcm0pKTsKKyAgICAgIG5ld19leHByID0gYnVpbGRfY29uZGl0aW9u YWxfZXhwciAobG9jYXRpb24sIG5ld19jb21wX2V4cHIsIGZhbHNlLAorCQkJ CQkgbmV3X3llc19leHByLCBUUkVFX1RZUEUgKCpuZXdfdmFyKSwKKwkJCQkJ IG5ld19ub19leHByLCBUUkVFX1RZUEUgKCpuZXdfdmFyKSk7CiAgICAgICBi cmVhazsKICAgICBjYXNlIEJVSUxUX0lOX0NJTEtQTFVTX1NFQ19SRURVQ0Vf TUFYX0lORDoKICAgICAgIG5ld192YXJfaW5pdCA9IGJ1aWxkX21vZGlmeV9l eHByCkBAIC01NTEsMTIgKzU1NSwxMyBAQCBmaXhfYnVpbHRpbl9hcnJheV9u b3RhdGlvbl9mbiAodHJlZSBhbl9idWlsdGluX2ZuLCB0cmVlICpuZXdfdmFy KQogICAgICAgYXBwZW5kX3RvX3N0YXRlbWVudF9saXN0IChuZXdfbm9faW5k LCAmbmV3X25vX2xpc3QpOwogICAgICAgYXBwZW5kX3RvX3N0YXRlbWVudF9s aXN0IChuZXdfbm9fZXhwciwgJm5ld19ub19saXN0KTsKICAKKyAgICAgIG5l d19jb21wX2V4cHIgPQorCWJ1aWxkMiAoTEVfRVhQUiwgVFJFRV9UWVBFIChh cnJheV9pbmRfdmFsdWUpLCBhcnJheV9pbmRfdmFsdWUsCisJCWJ1aWxkX2Nf Y2FzdCAobG9jYXRpb24sIFRSRUVfVFlQRSAoYXJyYXlfaW5kX3ZhbHVlKSwK KwkJCSAgICAgIGZ1bmNfcGFybSkpOwogICAgICAgbmV3X2V4cHIgPSBidWls ZF9jb25kaXRpb25hbF9leHByCi0JKGxvY2F0aW9uLAotCSBidWlsZDIgKExF X0VYUFIsIFRSRUVfVFlQRSAoYXJyYXlfaW5kX3ZhbHVlKSwgYXJyYXlfaW5k X3ZhbHVlLAotCQkgZnVuY19wYXJtKSwKLQkgZmFsc2UsCi0JIG5ld195ZXNf bGlzdCwgVFJFRV9UWVBFICgqbmV3X3ZhciksIG5ld19ub19saXN0LCBUUkVF X1RZUEUgKCpuZXdfdmFyKSk7CisJKGxvY2F0aW9uLCBuZXdfY29tcF9leHBy LCBmYWxzZSwgIG5ld195ZXNfbGlzdCwgVFJFRV9UWVBFICgqbmV3X3Zhciks CisJIG5ld19ub19saXN0LCBUUkVFX1RZUEUgKCpuZXdfdmFyKSk7CiAgICAg ICBicmVhazsKICAgICBjYXNlIEJVSUxUX0lOX0NJTEtQTFVTX1NFQ19SRURV Q0VfTUlOX0lORDoKICAgICAgIG5ld192YXJfaW5pdCA9IGJ1aWxkX21vZGlm eV9leHByCkBAIC02MDEsMjQgKzYwNiwzNCBAQCBmaXhfYnVpbHRpbl9hcnJh eV9ub3RhdGlvbl9mbiAodHJlZSBhbl9idWlsdGluX2ZuLCB0cmVlICpuZXdf dmFyKQogICAgICAgYXBwZW5kX3RvX3N0YXRlbWVudF9saXN0IChuZXdfbm9f aW5kLCAmbmV3X25vX2xpc3QpOwogICAgICAgYXBwZW5kX3RvX3N0YXRlbWVu dF9saXN0IChuZXdfbm9fZXhwciwgJm5ld19ub19saXN0KTsKICAKKyAgICAg IG5ld19jb21wX2V4cHIgPQorCWJ1aWxkMiAoR0VfRVhQUiwgVFJFRV9UWVBF IChhcnJheV9pbmRfdmFsdWUpLCBhcnJheV9pbmRfdmFsdWUsCisJCWJ1aWxk X2NfY2FzdCAobG9jYXRpb24sIFRSRUVfVFlQRSAoYXJyYXlfaW5kX3ZhbHVl KSwKKwkJCSAgICAgIGZ1bmNfcGFybSkpOwogICAgICAgbmV3X2V4cHIgPSBi dWlsZF9jb25kaXRpb25hbF9leHByCi0JKGxvY2F0aW9uLAotCSBidWlsZDIg KEdFX0VYUFIsIFRSRUVfVFlQRSAoYXJyYXlfaW5kX3ZhbHVlKSwgYXJyYXlf aW5kX3ZhbHVlLAotCQkgZnVuY19wYXJtKSwKLQkgZmFsc2UsCi0JIG5ld195 ZXNfbGlzdCwgVFJFRV9UWVBFICgqbmV3X3ZhciksIG5ld19ub19saXN0LCBU UkVFX1RZUEUgKCpuZXdfdmFyKSk7CisJKGxvY2F0aW9uLCBuZXdfY29tcF9l eHByLCBmYWxzZSwgbmV3X3llc19saXN0LCBUUkVFX1RZUEUgKCpuZXdfdmFy KSwKKwkgbmV3X25vX2xpc3QsIFRSRUVfVFlQRSAoKm5ld192YXIpKTsKICAg ICAgIGJyZWFrOwogICAgIGNhc2UgQlVJTFRfSU5fQ0lMS1BMVVNfU0VDX1JF RFVDRToKICAgICAgIG5ld192YXJfaW5pdCA9IGJ1aWxkX21vZGlmeV9leHBy CiAJKGxvY2F0aW9uLCAqbmV3X3ZhciwgVFJFRV9UWVBFICgqbmV3X3Zhciks IE5PUF9FWFBSLAogCSBsb2NhdGlvbiwgaWRlbnRpdHlfdmFsdWUsIG5ld192 YXJfdHlwZSk7Ci0gICAgICBuZXdfY2FsbF9leHByID0gYnVpbGRfY2FsbF9l eHByIChjYWxsX2ZuLCAyLCAqbmV3X3ZhciwgZnVuY19wYXJtKTsKKyAgICAg IG5ld19jYWxsX2V4cHIgPSBidWlsZF9jYWxsX2V4cHIgKGNhbGxfZm4sIDIs ICpuZXdfdmFyLAorCQkJCSAgICAgICBidWlsZF9jX2Nhc3QgKGxvY2F0aW9u LCBuZXdfdmFyX3R5cGUsCisJCQkJCQkgICAgIGZ1bmNfcGFybSkpOwogICAg ICAgbmV3X2V4cHIgPSBidWlsZF9tb2RpZnlfZXhwcgogCShsb2NhdGlvbiwg Km5ld192YXIsIFRSRUVfVFlQRSAoKm5ld192YXIpLCBOT1BfRVhQUiwKIAkg bG9jYXRpb24sIG5ld19jYWxsX2V4cHIsIFRSRUVfVFlQRSAoKm5ld192YXIp KTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgQlVJTFRfSU5fQ0lMS1BMVVNf U0VDX1JFRFVDRV9NVVRBVElORzoKLSAgICAgIG5ld19leHByID0gYnVpbGRf Y2FsbF9leHByIChjYWxsX2ZuLCAyLCBpZGVudGl0eV92YWx1ZSwgZnVuY19w YXJtKTsKKyAgICAgIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAoaWRlbnRp dHlfdmFsdWUpKSA9PSBQT0lOVEVSX1RZUEUpCisJbmV3X3Zhcl90eXBlID0g VFJFRV9UWVBFIChUUkVFX1RZUEUgKGlkZW50aXR5X3ZhbHVlKSk7CisgICAg ICBpZGVudGl0eV9leHByID0gVFJFRV9PUEVSQU5EIChpZGVudGl0eV92YWx1 ZSwgMCk7CisgICAgICBpZGVudGl0eV92YWx1ZSA9IGJ1aWxkX2ZvbGRfYWRk cl9leHByIChpZGVudGl0eV9leHByKTsKKyAgICAgIFRSRUVfVVNFRCAoaWRl bnRpdHlfZXhwcikgPSAxOworICAgICAgbmV3X2V4cHIgPSBidWlsZF9jYWxs X2V4cHIgKGNhbGxfZm4sIDIsIGlkZW50aXR5X3ZhbHVlLAorCQkJCSAgYnVp bGRfY19jYXN0IChsb2NhdGlvbiwgbmV3X3Zhcl90eXBlLAorCQkJCQkJZnVu Y19wYXJtKSk7CiAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg Z2NjX3VucmVhY2hhYmxlICgpOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cgYi9nY2MvdGVzdHN1aXRlL0NoYW5nZUxvZwppbmRleCBi OGZlMzYyLi42YzZjNTBjIDEwMDY0NApCaW5hcnkgZmlsZXMgYS9nY2MvdGVz dHN1aXRlL0NoYW5nZUxvZyBhbmQgYi9nY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZyBkaWZmZXIKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29t bW9uL2NpbGstcGx1cy9BTi9idWlsdGluX2ZuX211dGF0aW5nLmMgYi9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9jaWxrLXBsdXMvQU4vYnVpbHRpbl9m bl9tdXRhdGluZy5jCmluZGV4IDY2MzU1NjUuLjdjMTk0YzIgMTAwNjQ0Ci0t LSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2NpbGstcGx1cy9BTi9i dWlsdGluX2ZuX211dGF0aW5nLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vY2lsay1wbHVzL0FOL2J1aWx0aW5fZm5fbXV0YXRpbmcuYwpA QCAtNDQsMTEgKzQ0LDExIEBAIGludCBtYWluKHZvaWQpCiAgIG1heF92YWx1 ZSA9IGFycmF5M1swXSAqIGFycmF5NFswXTsKICAgZm9yIChpaSA9IDA7IGlp IDwgMTA7IGlpKyspCiAgICAgaWYgKGFycmF5M1tpaV0gKiBhcnJheTRbaWld ID4gbWF4X3ZhbHVlKSB7Ci0gICAgICBtYXhfdmFsdWUgPSBhcnJheTNbaWld ICogYXJyYXk0W2lpXTsKICAgICAgIG1heF9pbmRleCA9IGlpOwogICAgIH0K ICAgICAKLSAgCisgIGZvciAoaWkgPSAwOyBpaSA8IDEwOyBpaSsrKQorICAg IG15X2Z1bmMgKCZtYXhfdmFsdWUsIGFycmF5M1tpaV0gKiBhcnJheTRbaWld KTsKICAgCiAjaWYgSEFWRV9JTwogICBmb3IgKGlpID0gMDsgaWkgPCAxMDsg aWkrKykgCg== --_002_BF230D13CA30DD48930C31D4099330003A42D3CAFMSMSX101amrcor_--