[Ada] Fix thinko in Acc_Loop_to_gnu
authorOlivier Hainque <hainque@adacore.com>
Mon, 19 Aug 2019 08:35:24 +0000 (08:35 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 19 Aug 2019 08:35:24 +0000 (08:35 +0000)
This fixes a glitch introduced during the initial OpenACC work import
process, causing crashes on any Acc_Parallel + Acc_Loop combination.

2019-08-19  Olivier Hainque  <hainque@adacore.com>

gcc/ada/

* gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc
BIND_EXPR node we have constructed on purpose.  Remove unused
variable.

gcc/testsuite/

* gnat.dg/openacc1.adb: New testcase.

From-SVN: r274638

gcc/ada/ChangeLog
gcc/ada/gcc-interface/trans.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/openacc1.adb [new file with mode: 0644]

index d6367e18c7112983b930c72de0dd9208373cc7b2..0ead3078297ba457ba8053828b3152a631dc947d 100644 (file)
@@ -1,3 +1,9 @@
+2019-08-19  Olivier Hainque  <hainque@adacore.com>
+
+       * gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc
+       BIND_EXPR node we have constructed on purpose.  Remove unused
+       variable.
+
 2019-08-19  Pierre-Marie de Rodat  <derodat@adacore.com>
 
        * gcc-interface/lang.opt (fdump-scos): Define.
index 95991bde274b36191e631553d4a73ce17a02713b..6c696b9fdee0d2a97a3398b6b5ded4102f00043d 100644 (file)
@@ -3398,9 +3398,6 @@ independent_iterations_p (tree stmt_list)
 static tree
 Acc_Loop_to_gnu (Node_Id gnat_loop)
 {
-  const struct loop_info_d * const gnu_loop_info = gnu_loop_stack->last ();
-  tree gnu_loop_stmt = gnu_loop_info->stmt;
-
   tree acc_loop = make_node (OACC_LOOP);
   tree acc_bind_expr = NULL_TREE;
   Node_Id cur_loop = gnat_loop;
@@ -3517,7 +3514,7 @@ Acc_Loop_to_gnu (Node_Id gnat_loop)
 
   BIND_EXPR_BODY (acc_bind_expr) = acc_loop;
 
-  return gnu_loop_stmt;
+  return acc_bind_expr;
 }
 
 /* Helper for Loop_Statement_to_gnu, to translate the body of a loop not
index 96f259e5688a69668a3006b0fefaa50a9dbeefbe..b68ff86979df8d3433c63b39c98b8c78be892dc5 100644 (file)
@@ -1,3 +1,7 @@
+2019-08-19  Olivier Hainque  <hainque@adacore.com>
+
+       * gnat.dg/openacc1.adb: New testcase.
+
 2019-08-19  Kito Cheng  <kito.cheng@sifive.com>
 
        PR target/91441
diff --git a/gcc/testsuite/gnat.dg/openacc1.adb b/gcc/testsuite/gnat.dg/openacc1.adb
new file mode 100644 (file)
index 0000000..ce27a5f
--- /dev/null
@@ -0,0 +1,12 @@
+--  { dg-do compile }
+
+procedure OpenAcc1 is
+   type Integer_Array is array (1 .. 32) of Integer;
+   Data : Integer_Array;
+begin
+   for i in Data'Range loop
+      pragma Acc_Parallel;
+      pragma Acc_Loop(Worker);
+      Data (i) := i;
+   end loop;
+end;