3 // RUN: split-file %s %t
5 // Treat the behavior of using headers as baseline.
6 // RUN: %clang_cc1 -std=c++20 %t/use-header.cc -isystem %t -fsyntax-only -verify
8 // RUN: %clang_cc1 -std=c++20 %t/a.cppm -isystem %t -emit-module-interface -o %t/a.pcm
9 // RUN: %clang_cc1 -std=c++20 %t/use-module.cc -isystem %t -fmodule-file=a=%t/a.pcm -fsyntax-only -verify
11 // Test again with reduced BMI.
12 // RUN: %clang_cc1 -std=c++20 %t/a.cppm -isystem %t -emit-reduced-module-interface -o %t/a.pcm
13 // RUN: %clang_cc1 -std=c++20 %t/use-module.cc -isystem %t -fmodule-file=a=%t/a.pcm -fsyntax-only -verify
19 #pragma GCC system_header
22 struct [[deprecated]] iterator {};
24 _Pragma("GCC diagnostic push")
25 _Pragma("GCC diagnostic ignored \"-Wdeprecated\"")
26 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
29 struct reverse_iterator
30 : public iterator<C> {};
32 _Pragma("GCC diagnostic pop")
38 reverse_iterator<T> i;
45 // expected-no-diagnostics
46 // However, we see unexpected warnings
57 export using ::iterator;
61 // expected-no-diagnostics