1*a5bbbfefSRichard Smith // RUN: %clang_cc1 -std=c++2a -DEXPORT %s -verify 2*a5bbbfefSRichard Smith // RUN: %clang_cc1 -std=c++2a -DEXPORT %s -emit-module-interface -o %t.pcm 3*a5bbbfefSRichard Smith // RUN: %clang_cc1 -std=c++2a -UEXPORT %s -verify -fmodule-file=%t.pcm 4*a5bbbfefSRichard Smith 5*a5bbbfefSRichard Smith #ifdef EXPORT 6*a5bbbfefSRichard Smith // expected-no-diagnostics 7*a5bbbfefSRichard Smith export 8*a5bbbfefSRichard Smith #else 9*a5bbbfefSRichard Smith // expected-note@+2 {{add 'export' here}} 10*a5bbbfefSRichard Smith #endif 11*a5bbbfefSRichard Smith module M; 12*a5bbbfefSRichard Smith 13*a5bbbfefSRichard Smith #ifndef EXPORT 14*a5bbbfefSRichard Smith // expected-error@+2 {{private module fragment in module implementation unit}} 15*a5bbbfefSRichard Smith #endif 16*a5bbbfefSRichard Smith module :private; 17