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