From patchwork Thu May 30 21:51:34 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Iyer, Balaji V" X-Patchwork-Id: 247801 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 593C52C00A8 for ; Fri, 31 May 2013 07:52:44 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:content-type:mime-version; q=dns; s=default; b=EnvHytqb+zEjJ9aMCB4AEyh6GojzRr3D1n2LzI68cnOJtEBFP6 1zWJOYEIZvIEObte3mYmoRyiTVVrExhGKW9dTb8+DWzTn12hvNzJPuG65E57B/yt pgtwYdl8EVPejspUMhOaIOqH4XkJW7Mbryvwzml6rWGu8fnP1A+rre/FM= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:content-type:mime-version; s= default; bh=P8kCQKc/44GKGmwJEMxfonCGa4E=; b=DiLb3HKcMSs3otiNeQ1D XL3Q+OW7in7EmVmbwk7lqaicYw7c60XUzAP/sthl3zkb9+l3lXD+WPja6nY7eSpm VteiXu7dcc/jD/UkLjoJEAUfwUDvnwTNiXBtLrfRdX969TrKeVsG6SFJot4GDBrg uHM0kU+AK5zv8vFep6XwHiM= Received: (qmail 27483 invoked by alias); 30 May 2013 21:51:39 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 27454 invoked by uid 89); 30 May 2013 21:51:39 -0000 X-Spam-SWARE-Status: No, score=-7.0 required=5.0 tests=AWL, BAYES_00, RCVD_IN_HOSTKARMA_W, RCVD_IN_HOSTKARMA_WL, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.1 Received: from mga09.intel.com (HELO mga09.intel.com) (134.134.136.24) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 30 May 2013 21:51:38 +0000 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 30 May 2013 14:49:27 -0700 X-ExtLoop1: 1 Received: from fmsmsx104.amr.corp.intel.com ([10.19.9.35]) by orsmga002.jf.intel.com with ESMTP; 30 May 2013 14:51:35 -0700 Received: from fmsmsx152.amr.corp.intel.com (10.19.17.221) by FMSMSX104.amr.corp.intel.com (10.19.9.35) with Microsoft SMTP Server (TLS) id 14.3.123.3; Thu, 30 May 2013 14:51:35 -0700 Received: from fmsmsx101.amr.corp.intel.com ([169.254.1.135]) by fmsmsx152.amr.corp.intel.com ([169.254.6.169]) with mapi id 14.03.0123.003; Thu, 30 May 2013 14:51:34 -0700 From: "Iyer, Balaji V" To: "gcc-patches@gcc.gnu.org" CC: "'H.J. Lu (hjl.tools@gmail.com)'" , "schwab@suse.de" Subject: PR 57452 Date: Thu, 30 May 2013 21:51:34 +0000 Message-ID: MIME-Version: 1.0 X-Virus-Found: No Hello Everyone, One of the test in Cilk Plus array notation execution test for C was wrong. Here is a fixed one: Here is the Change log entry for it: 2013-05-30 Balaji V. Iyer PR c/57452 * c-c++-common/cilk-plus/AN/if_test.c: Fixed out of bounds issue in test-case. Is this OK for trunk? Thanks, Balaji V. Iyer. diff --git a/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c b/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c old mode 100644 new mode 100755 index b150b18..53ceeec --- a/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c +++ b/gcc/testsuite/c-c++-common/cilk-plus/AN/if_test.c @@ -1,6 +1,9 @@ /* { dg-do run } */ /* { dg-options "-fcilkplus" } */ +#if HAVE_IO +#include +#endif #include int main2 (int argc, char **argv); int main(int argc, char **argv) @@ -23,8 +26,9 @@ int main(int argc, char **argv) int main2 (int argc, char **argv) { int x = 3, y, z, array[10], array2[10], TwodArray[10][10], jj,kk,ll ; - int array2_check[10]; - int FourDArray[10][10][10][10]; + int array2_check[10], array2d_check[10][10], array2d[10][10]; + int FourDArray[10][10][10][10], array4[10][10][10][10]; + int array4_check[10][10][10][10]; int ii = 0; for (ii = 0; ii < 10; ii++) @@ -71,10 +75,6 @@ int main2 (int argc, char **argv) if (array2_check[ii] != array2[ii]) return 3; - - - - x = atoi (argv[1])-10; y = atoi (argv[1])/2; z = (atoi (argv[1]))/5; @@ -110,14 +110,16 @@ int main2 (int argc, char **argv) if (array2_check[ii] != array2[ii]) return 4; - for (ii = 0; ii < 10; ii++) + for (ii = 0; ii < 10; ii++) { array2[ii] = 10; + array2_check[ii] = 10; + } /* This if loop will change all the 10's to 5's */ - if (array[atoi(argv[1])-10:atoi(argv[1]): atoi(argv[1])/5]) - array2[:] = 5; + if (array[atoi(argv[1])-10:atoi(argv[1])/2: atoi(argv[1])/5]) + array2[atoi(argv[1])-10: atoi (argv[1])/2: atoi(argv[1])/5] = 5; else - array2[:] = 10; + array2[atoi(argv[1])-10: atoi (argv[1])/2: atoi(argv[1])/5] = 10; for (ii = atoi(argv[1])-10; ii < atoi(argv[1]) + (atoi (argv[1])-10); ii +=atoi(argv[1])/5) @@ -127,9 +129,13 @@ int main2 (int argc, char **argv) array2_check[ii] = 10; for (ii = 0; ii < 10; ii++) - if (array2_check[ii] != array2[ii]) + if (array2_check[ii] != array2[ii]) { +#if HAVE_IO + printf("array2[%2d] = %2d array2_check[%2d] = %2d\n", ii, array2[ii], + ii, array2_check[ii]); +#endif return 5; - + } for (ii = 0; ii < 10; ii++) for (jj = 0; jj < 10; jj++) @@ -137,29 +143,39 @@ int main2 (int argc, char **argv) for (ii = 0; ii < 10; ii++) - { - array2[ii] = 10; - array2_check[ii] = 10; + for (ii = 0; ii < 10; ii++) { + array2d[ii][jj] = 10; + array2d_check[ii][jj] = 10; } /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ if (TwodArray[:][:] != 10) - array2[:] = 10; + array2d[:][:] = 10; else - array2[:] = 5; + array2d[:][:] = 5; for (ii = 0; ii < 10; ii++) { for (jj = 0; jj < 10; jj++) { if (TwodArray[ii][jj] != 10) - array2_check[ii] = 10; + array2d_check[ii][jj] = 10; + else + array2d_check[ii][jj] = 5; } } for (ii = 0; ii < 10; ii++) - { - array2[ii] = 10; - array2_check[ii] = 10; - } + for (jj = 0; jj < 10; jj++) + if (array2d[ii][jj] != array2d_check[ii][jj]) + return 6; + + for (ii = 0; ii < 10; ii++) + for (jj = 0; jj < 10; jj++) + for (kk = 0; kk < 10; kk++) + for (ll = 0; ll < 10; ll++) + { + array4[ii][jj][kk][ll] = 10; + array4_check[ii][jj][kk][ll] = 10; + } for (ii = 0; ii < 10; ii++) for (jj = 0; jj < 10; jj++) @@ -169,26 +185,38 @@ int main2 (int argc, char **argv) /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ if (FourDArray[:][:][:][:] != 10) - array2[:] = 10; + array4[:][:][:][:] = 10; else - array2[:] = 5; + array4[:][:][:][:] = 5; for (ii = 0; ii < 10; ii++) { for (jj = 0; jj < 10; jj++) { for (kk = 0; kk < 10; kk++) { for (ll = 0; ll < 10; ll++) { if (FourDArray[ii][jj][kk][ll] != 10) - array2_check[ii] = 10; + array4_check[ii][jj][kk][ll] = 10; + else + array4_check[ii][jj][kk][ll] = 5; } } } } - + for (ii = 0; ii < 10; ii++) - { - array2[ii] = 10; - array2_check[ii] = 10; - } + for (jj = 0; jj < 10; jj++) + for (kk = 0; kk < 10; kk++) + for (ll = 0; ll < 10; ll++) + if (array4_check[ii][jj][kk][ll] != array4[ii][jj][kk][ll]) + return 7; + + for (ii = 0; ii < 10; ii++) + for (jj = 0; jj < 10; jj++) + for (kk = 0; kk < 10; kk++) + for (ll = 0; ll < 10; ll++) + { + array4[ii][jj][kk][ll] = 10; + array4_check[ii][jj][kk][ll] = 10; + } for (ii = 0; ii < 10; ii++) for (jj = 0; jj < 10; jj++) @@ -197,54 +225,88 @@ int main2 (int argc, char **argv) FourDArray[ii][jj][kk][ll] = atoi(argv[1]); /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ - if (FourDArray[0:10:1][0:5:2][9:10:-1][x:y:z] != 10) - array2[:] = 10; + if (FourDArray[0:10:1][0:5:2][9:10:-1][0:5:2] != 10) + array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 10; else - array2[:] = 5; + array4[0:10:1][0:5:2][9:10:-1][0:5:2] = 5; for (ii = 0; ii < 10; ii++) { for (jj = 0; jj < 10; jj += 2) { for (kk = 9; kk >= 0; kk--) { - for (ll = x; ll < 10; ll = ll += z) { + for (ll = 0; ll < 10; ll += 2) { if (FourDArray[ii][jj][kk][ll] != 10) - array2_check[ii] = 10; + array4_check[ii][jj][kk][ll] = 10; else - array2_check[ii] = 5; + array4_check[ii][jj][kk][ll] = 5; } } } } for (ii = 0; ii < 10; ii++) - { - array2[ii] = 10; - array2_check[ii] = 10; - } - + for (jj = 0; jj < 10; jj++) + for (kk = 0; kk < 10; kk++) + for (ll = 0; ll < 10; ll++) + if (array4_check[ii][jj][kk][ll] != array4[ii][jj][kk][ll]) { +#if HAVE_IO + printf("array4_check[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll, + array4_check[ii][jj][kk][ll]); + printf("array4[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll, + array4[ii][jj][kk][ll]); +#endif + return 8; + } + for (ii = 0; ii < 10; ii++) for (jj = 0; jj < 10; jj++) for (kk = 0; kk < 10; kk++) for (ll = 0; ll < 10; ll++) FourDArray[ii][jj][kk][ll] = atoi(argv[1]); + + for (ii = 0; ii < 10; ii++) + for (jj = 0; jj < 10; jj++) + for (kk = 0; kk < 10; kk++) + for (ll = 0; ll < 10; ll++) + { + array4[ii][jj][kk][ll] = 10; + array4_check[ii][jj][kk][ll] = 10; + } + /* atoi(argv[1]) == 10, so it will convert all 10's to 5's */ if (FourDArray[0:10:1][0:5:2][9:10:-1][x:y:z] + FourDArray[0:10:1][0:5:2][9:-10:1][x:y:z] != 20) - array2[:] = 10; + array4[0:10:1][0:5:2][9:10:-1][x:y:z] = 10; else - array2[:] = 5; + array4[0:10][0:5:2][9:10:-1][x:y:z] = 5; for (ii = 0; ii < 10; ii++) { for (jj = 0; jj < 10; jj += 2) { for (kk = 9; kk >= 0; kk--) { - for (ll = x; ll < 10; ll = ll += z) { + for (ll = 0; ll < 10; ll += 2) { if (FourDArray[ii][jj][kk][ll] != 10) - array2_check[ii] = 10; + array4_check[ii][jj][kk][ll] = 10; else - array2_check[ii] = 5; + array4_check[ii][jj][kk][ll] = 5; } } } } + + for (ii = 0; ii < 10; ii++) + for (jj = 0; jj < 10; jj++) + for (kk = 0; kk < 10; kk++) + for (ll = 0; ll < 10; ll++) + if (array4_check[ii][jj][kk][ll] != array4[ii][jj][kk][ll]) { +#if HAVE_IO + printf("array4_check[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll, + array4_check[ii][jj][kk][ll]); + printf("array4[%d][%d][%d][%d] = %d\n",ii, jj, kk, ll, + array4[ii][jj][kk][ll]); +#endif + return 9; + } + + return 0; }