[committed] libgomp.oacc-c-c++-common/loop-gwv-2.c: Use __builtin_alloca

Message ID 6a13dcc8-06c9-2d33-4ed0-4c25593aaa7e@codesourcery.com
State Committed
Headers
Series [committed] libgomp.oacc-c-c++-common/loop-gwv-2.c: Use __builtin_alloca |

Commit Message

Tobias Burnus Oct. 25, 2021, 6:53 p.m. UTC
  In PR testsuite/102910 there was some discussion about alloca.h and
whether that header exists or whether 'alloca' is provided by stdlib.h
or ...

Well, some grepping showed that libgomp.oacc-c-c++-common/loop-gwv-2.c
also used 'alloca'. Solution: Do it like other testcases and use
__builtin_alloca. (I think this will fail on nvptx, but otherwise
it should now pass on more systems.)

I have only tested it on x86-64, where it passed before and after,
but I do see in gcc-testresults@ fails (even though I don't know
whether those fails are for this issue or others).

Committed as Rev. r12-4691.

Tobias
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Patch

commit 72dc270be793f159a3a038bef41542d85550b331
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Mon Oct 25 20:40:13 2021 +0200

    libgomp.oacc-c-c++-common/loop-gwv-2.c: Use __builtin_alloca
    
    Some systems do not have <alloca.h> but provide alloca differently, e.g.
    via stdlib.h. Do it like other testcases do and use __builtin_alloca.
    
    libgomp/ChangeLog:
    
            PR testsuite/102910
            * testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c: Use __builtin_alloca
            instead of #include <alloca.h> + alloca.
---
 libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c
index cb3878b8d4e..e73ed6064eb 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/loop-gwv-2.c
@@ -6,7 +6,6 @@ 
 
 #include <stdio.h>
 #include <openacc.h>
-#include <alloca.h>
 #include <string.h>
 #include <gomp-constants.h>
 #include <stdlib.h>
@@ -78,9 +77,9 @@  int main ()
     vectorsize = __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR);
   }
 
-  gangdist = (int *) alloca (gangsize * sizeof (int));
-  workerdist = (int *) alloca (workersize * sizeof (int));
-  vectordist = (int *) alloca (vectorsize * sizeof (int));
+  gangdist = (int *) __builtin_alloca (gangsize * sizeof (int));
+  workerdist = (int *) __builtin_alloca (workersize * sizeof (int));
+  vectordist = (int *) __builtin_alloca (vectorsize * sizeof (int));
   memset (gangdist, 0, gangsize * sizeof (int));
   memset (workerdist, 0, workersize * sizeof (int));
   memset (vectordist, 0, vectorsize * sizeof (int));