/* This file has a syntax error but should not ICE. Namely, a '}' is missing in one(). */ typedef enum omp_allocator_handle_t #if __cplusplus >= 201103L : __UINTPTR_TYPE__ #endif { omp_default_mem_alloc = 1, omp_low_lat_mem_alloc = 5, __omp_allocator_handle_t_max__ = __UINTPTR_MAX__ } omp_allocator_handle_t; #include void one () { /* { dg-note "to match this '\{'" "" { target c++ } } */ int result = 0, n = 3; #pragma omp target map(tofrom: result) firstprivate(n) { int var = 5; //, var2[n]; #pragma omp allocate(var) align(128) allocator(omp_low_lat_mem_alloc) /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } } */ var = 7; } void two () { /* { dg-error "a function-definition is not allowed here before '\{' token" "" { target c++ } } */ int scalar = 44; #pragma omp allocate(scalar) #pragma omp parallel firstprivate(scalar) scalar = 33; } /* { dg-error "expected declaration or statement at end of input" "" { target c } .-1 } */ /* { dg-error "expected '\}' at end of input" "" { target c++ } .-2 } */