brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · b48d964 Raw
55 lines · cpp
1// Based on C++20 10.2 example 2.2 3// RUN: rm -rf %t4// RUN: mkdir -p %t5// RUN: split-file %s %t6 7// RUN: %clang_cc1 -std=c++20 -emit-header-unit -I %t \8// RUN: -xc++-user-header std-10-2-ex2-c.h -o %t/std-10-2-ex2-c.pcm9 10// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/std-10-2-ex2-tu1.cpp \11// RUN:  -o  %t/X.pcm12 13// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/std-10-2-ex2-tu2.cpp \14// RUN: -fmodule-file=%t/std-10-2-ex2-c.pcm -fmodule-file=X=%t/X.pcm \15// RUN: -pedantic-errors -verify -o  %t/M.pcm16 17// Test again with reduced BMI.18// RUN: %clang_cc1 -std=c++20 -emit-header-unit -I %t \19// RUN: -xc++-user-header std-10-2-ex2-c.h -o %t/std-10-2-ex2-c.pcm20 21// RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/std-10-2-ex2-tu1.cpp \22// RUN:  -o  %t/X.pcm23 24// RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/std-10-2-ex2-tu2.cpp \25// RUN: -fmodule-file=%t/std-10-2-ex2-c.pcm -fmodule-file=X=%t/X.pcm \26// RUN: -pedantic-errors -verify -o  %t/M.pcm27 28 29//--- std-10-2-ex2-b.h30int f();31 32//--- std-10-2-ex2-c.h33int g();34 35//--- std-10-2-ex2-tu1.cpp36export module X;37export int h();38 39//--- std-10-2-ex2-tu2.cpp40module;41#include "std-10-2-ex2-b.h"42 43export module M;44import "std-10-2-ex2-c.h";  // expected-warning {{the implementation of header units is in an experimental phase}}45import X;46export using ::f, ::g, ::h; // OK47struct S;                   // expected-note {{target of using declaration}}48export using ::S;           // expected-error {{using declaration referring to 'S' with module linkage cannot be exported}}49 50namespace N {51export int h();52static int h(int); // expected-note {{target of using declaration}}53} // namespace N54export using N::h; // expected-error {{using declaration referring to 'h' with internal linkage cannot be exported}}55