/* TODO: enable for C++ once implemented. */ /* { dg-do compile { target c } } */ /* { dg-additional-options "-Wall -fdump-tree-gimple" } */ typedef enum omp_allocator_handle_t #if __cplusplus >= 201103L : __UINTPTR_TYPE__ #endif { omp_default_mem_alloc = 1, __omp_allocator_handle_t_max__ = __UINTPTR_MAX__ } omp_allocator_handle_t; void f() { int n; int A[n]; /* { dg-warning "'n' is used uninitialized" } */ /* { dg-warning "unused variable 'A'" "" { target *-*-* } .-1 } */ } void h1() { omp_allocator_handle_t my_handle; int B1[3]; /* { dg-warning "'my_handle' is used uninitialized" } */ /* { dg-warning "variable 'B1' set but not used" "" { target *-*-* } .-1 } */ #pragma omp allocate(B1) allocator(my_handle) B1[0] = 5; /* { dg-final { scan-tree-dump-times "__builtin_GOMP_alloc" 1 "gimple" } } */ /* { dg-final { scan-tree-dump-times "B1.\[0-9\]+ = __builtin_GOMP_alloc \\(4, 12, my_handle\\);" 1 "gimple" } } */ /* { dg-final { scan-tree-dump-times "__builtin_GOMP_free \\(B1.\[0-9\]+, 0B\\);" 1 "gimple" } } */ } void h2() { omp_allocator_handle_t my_handle; int B2[3]; /* { dg-warning "unused variable 'B2'" } */ #pragma omp allocate(B2) allocator(my_handle) /* No warning as 'B2' is unused */ } void h3() { omp_allocator_handle_t my_handle; int B3[3] = {1,2,3}; /* { dg-warning "unused variable 'B3'" } */ #pragma omp allocate(B3) allocator(my_handle) /* No warning as 'B3' is unused */ }