1*a0839c13SAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp -ast-print -std=c++20 %s -Wsign-conversion | FileCheck %s 2*a0839c13SAlexey Bataev // RUN: %clang_cc1 -fopenmp -x c++ -std=c++20 -emit-pch -o %t %s 3*a0839c13SAlexey Bataev // RUN: %clang_cc1 -fopenmp -std=c++20 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s 4*a0839c13SAlexey Bataev 5*a0839c13SAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp-simd -ast-print -std=c++20 %s -Wsign-conversion | FileCheck %s 6*a0839c13SAlexey Bataev // RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++20 -emit-pch -o %t %s 7*a0839c13SAlexey Bataev // RUN: %clang_cc1 -fopenmp-simd -std=c++20 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s 8*a0839c13SAlexey Bataev // expected-no-diagnostics 9*a0839c13SAlexey Bataev 10*a0839c13SAlexey Bataev #ifndef HEADER 11*a0839c13SAlexey Bataev #define HEADER 12*a0839c13SAlexey Bataev 13*a0839c13SAlexey Bataev // CHECK: template <> void do_loop(const auto &v) { 14*a0839c13SAlexey Bataev // CHECK-NEXT: #pragma omp parallel for 15*a0839c13SAlexey Bataev // CHECK-NEXT: for (const auto &i : v) 16*a0839c13SAlexey Bataev // CHECK-NEXT: ; 17*a0839c13SAlexey Bataev // CHECK-NEXT: } 18*a0839c13SAlexey Bataev do_loop(const auto & v)19*a0839c13SAlexey Bataevvoid do_loop(const auto &v) { 20*a0839c13SAlexey Bataev #pragma omp parallel for 21*a0839c13SAlexey Bataev for (const auto &i : v) 22*a0839c13SAlexey Bataev ; 23*a0839c13SAlexey Bataev } 24*a0839c13SAlexey Bataev #endif 25