1  typedef enum omp_allocator_handle_t
       2  #if __cplusplus >= 201103L
       3  : __UINTPTR_TYPE__
       4  #endif
       5  {
       6    omp_null_allocator = 0,
       7    omp_default_mem_alloc = 1,
       8    omp_large_cap_mem_alloc = 2,
       9    omp_const_mem_alloc = 3,
      10    omp_high_bw_mem_alloc = 4,
      11    omp_low_lat_mem_alloc = 5,
      12    omp_cgroup_mem_alloc = 6,
      13    omp_pteam_mem_alloc = 7,
      14    omp_thread_mem_alloc = 8,
      15    __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
      16  } omp_allocator_handle_t;
      17  
      18  int a = 0, b = 42, c = 0;
      19  
      20  void
      21  foo (omp_allocator_handle_t h)
      22  {
      23    #pragma omp scope private (a) private (b) reduction (+: c) allocate (allocator (h): a, b, c)
      24    {
      25      if (b != 42)
      26        __builtin_abort ();
      27      a = 36;
      28      b = 15;
      29      c++;
      30    }
      31  }