1*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: rm -rf %t 2*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: split-file %s %t 3*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: cd %t 4*c1ecc0d1SAlejandro Álvarez Ayllón 5*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: %clang_cc1 -std=c++23 m.cppm -emit-module-interface -o m.pcm -fallow-pcm-with-compiler-errors -verify 6*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: %clang_cc1 -std=c++23 main.cpp -fmodule-file=m=m.pcm -verify -fallow-pcm-with-compiler-errors -verify 7*c1ecc0d1SAlejandro Álvarez Ayllón 8*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: %clang_cc1 -std=c++23 m.cppm -fmodules-reduced-bmi -emit-module-interface -o m.pcm -fallow-pcm-with-compiler-errors -verify 9*c1ecc0d1SAlejandro Álvarez Ayllón // RUN: %clang_cc1 -std=c++23 main.cpp -fmodule-file=m=m.pcm -verify -fallow-pcm-with-compiler-errors -verify 10*c1ecc0d1SAlejandro Álvarez Ayllón 11*c1ecc0d1SAlejandro Álvarez Ayllón //--- m.cppm 12*c1ecc0d1SAlejandro Álvarez Ayllón export module m; 13*c1ecc0d1SAlejandro Álvarez Ayllón 14*c1ecc0d1SAlejandro Álvarez Ayllón export int f() { 15*c1ecc0d1SAlejandro Álvarez Ayllón return 0; 16*c1ecc0d1SAlejandro Álvarez Ayllón } 17*c1ecc0d1SAlejandro Álvarez Ayllón 18*c1ecc0d1SAlejandro Álvarez Ayllón export struct Foo { 19*c1ecc0d1SAlejandro Álvarez Ayllón __Int bar; // expected-error {{unknown type name '__Int'}} 20*c1ecc0d1SAlejandro Álvarez Ayllón }; 21*c1ecc0d1SAlejandro Álvarez Ayllón 22*c1ecc0d1SAlejandro Álvarez Ayllón //--- main.cpp 23*c1ecc0d1SAlejandro Álvarez Ayllón // expected-no-diagnostics 24*c1ecc0d1SAlejandro Álvarez Ayllón import m; // ok 25*c1ecc0d1SAlejandro Álvarez Ayllón 26*c1ecc0d1SAlejandro Álvarez Ayllón static_assert(__is_same(decltype(f), int())); // ok 27