18df390f9SRichard Smith// RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface %s -o %t.pcm -verify 2145e15a3SRichard Smith// RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface %s -o %t.pcm -verify -DERRORS 3bbcc9f04SRichard Smith 481328ac3SRichard Smithexport module foo; 58df390f9SRichard Smith#ifndef ERRORS 68df390f9SRichard Smith// expected-no-diagnostics 78df390f9SRichard Smith#else 881328ac3SRichard Smith// FIXME: diagnose missing module-declaration when building module interface 9bbcc9f04SRichard Smith 108df390f9SRichard Smith// FIXME: proclaimed-ownership-declarations? 118df390f9SRichard Smith 128df390f9SRichard Smithexport { 138df390f9SRichard Smith int a; 148df390f9SRichard Smith int b; 158df390f9SRichard Smith} 168df390f9SRichard Smithexport int c; 178df390f9SRichard Smith 188df390f9SRichard Smithnamespace N { 198df390f9SRichard Smithexport void f() {} 20*9db81628SChuanqi Xu} // namespace N 218df390f9SRichard Smith 22*9db81628SChuanqi Xuexport struct T { 23*9db81628SChuanqi Xu} t; 248df390f9SRichard Smith 258df390f9SRichard Smithstruct S { 268df390f9SRichard Smith export int n; // expected-error {{expected member name or ';'}} 278df390f9SRichard Smith export static int n; // expected-error {{expected member name or ';'}} 288df390f9SRichard Smith}; 298df390f9SRichard Smithvoid f() { 308df390f9SRichard Smith export int n; // expected-error {{expected expression}} 318df390f9SRichard Smith} 32bbcc9f04SRichard Smith#endif 33