/*
 * Copyright (c) 2018-2025, High Performance Computing Architecture and System
 * research laboratory at University of North Carolina at Charlotte (HPCAS@UNCC)
 * and Lawrence Livermore National Security, LLC.
 *
 * SPDX-License-Identifier: (BSD-3-Clause)
 */

//For testing purpose, there are several extra empty lines.
//The final version should only contain necessary information.
//This is not a C/C++ code, so there's no required writing style.
//Only two kinds of special lines will be recognized.
//One is starting with "omp", which is the input.
//The other one is starting with "PASS: ", which is the result for validation.


#pragma omp atomic
PASS: #pragma omp atomic 

#pragma omp atomic hint(abc)
PASS: #pragma omp atomic hint (abc)

#pragma omp atomic read
PASS: #pragma omp atomic read

#pragma omp atomic seq_cst hint(abc) read
PASS: #pragma omp atomic seq_cst hint (abc) read

#pragma omp atomic hint(abc) seq_cst read
PASS: #pragma omp atomic hint (abc) seq_cst read

#pragma omp atomic hint(abc) read seq_cst
PASS: #pragma omp atomic hint (abc) read seq_cst

#pragma omp atomic seq_cst read hint(abc)
PASS: #pragma omp atomic seq_cst read hint (abc)

#pragma omp atomic read hint(abc) seq_cst
PASS: #pragma omp atomic read hint (abc) seq_cst

#pragma omp atomic read seq_cst hint(abc)
PASS: #pragma omp atomic read seq_cst hint (abc)

#pragma omp atomic write hint(abc)
PASS: #pragma omp atomic write hint (abc)

#pragma omp atomic write seq_cst
PASS: #pragma omp atomic write seq_cst

#pragma omp atomic seq_cst, hint(abc), read
PASS: #pragma omp atomic seq_cst hint (abc) read

#pragma omp atomic seq_cst, hint(abc) read
PASS:#pragma omp atomic seq_cst hint (abc) read

#pragma omp atomic seq_cst hint(abc) read
PASS: #pragma omp atomic seq_cst hint (abc) read

#pragma omp atomic seq_cst, hint(abc), read,
PASS: #pragma omp atomic seq_cst hint (abc) read

#pragma omp atomic hint(abc) seq_cst read
PASS: #pragma omp atomic hint (abc) seq_cst read

#pragma omp atomic hint(abc) read seq_cst
PASS: #pragma omp atomic hint (abc) read seq_cst

#pragma omp atomic seq_cst read hint(abc)
PASS: #pragma omp atomic seq_cst read hint (abc)

#pragma omp atomic read hint(abc) seq_cst
PASS: #pragma omp atomic read hint (abc) seq_cst

#pragma omp atomic read seq_cst hint(abc)
PASS: #pragma omp atomic read seq_cst hint (abc)

#pragma omp atomic read,seq_cst,hint(abc)
PASS: #pragma omp atomic read seq_cst hint (abc)

#pragma omp atomic read ,seq_cst hint(abc)
PASS: #pragma omp atomic read seq_cst hint (abc)

#pragma omp atomic read seq_cst, hint(abc)
PASS: #pragma omp atomic read seq_cst hint (abc)

#pragma omp atomic hint(abc) read seq_cst
PASS: #pragma omp atomic hint (abc) read seq_cst

#pragma omp atomic hint(abc), read ,seq_cst
PASS: #pragma omp atomic hint (abc) read seq_cst

#pragma omp atomic hint(abc) ,read seq_cst
PASS: #pragma omp atomic hint (abc) read seq_cst

#pragma omp atomic hint(abc) read ,seq_cst
PASS: #pragma omp atomic hint (abc) read seq_cst

#pragma omp atomic write hint(abc)
PASS: #pragma omp atomic write hint (abc)

#pragma omp atomic write seq_cst
PASS: #pragma omp atomic write seq_cst

#pragma omp atomic release
PASS: #pragma omp atomic release
