// RUN: %clang_cc1 -verify -fopenmp --std=c++20 -ast-print %s -Wsign-conversion | FileCheck %s // RUN: %clang_cc1 -fopenmp -x c++ -std=c++20 -emit-pch -o %t %s // RUN: %clang_cc1 -fopenmp -std=c++20 -include-pch %t -verify %s -ast-print | FileCheck %s // RUN: %clang_cc1 -verify -fopenmp-simd --std=c++20 -ast-print %s -Wsign-conversion | FileCheck %s // RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++20 -emit-pch -o %t %s // RUN: %clang_cc1 -fopenmp-simd -std=c++20 -include-pch %t -verify %s -ast-print | FileCheck %s // expected-no-diagnostics #ifndef HEADER #define HEADER template class iterator { public: T &operator*() const; iterator &operator++(); }; template bool operator==(const iterator &, const iterator &); template unsigned long operator-(const iterator &, const iterator &); template iterator operator+(const iterator &, unsigned long); class vector { public: vector(); iterator begin(); iterator end(); }; // CHECK: void foo() { void foo() { // CHECK-NEXT: vector vec; vector vec; // CHECK-NEXT: #pragma omp for #pragma omp for // CHECK-NEXT: for (int i : vec) for (int i : vec) ; } #endif