// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - %s -verify export void f1(); export void f1() {} namespace { // expected-note {{anonymous namespace begins here}} export void f2(); // expected-error {{export declaration appears within anonymous namespace}} } export void f3(); export { // expected-note {{export block begins here}} void f4() {} export void f5() {} // expected-error {{export declaration appears within another export declaration}} int A; // expected-error {{export declaration can only be used on functions}} namespace ns { // expected-error {{export declaration can only be used on functions}} void f6(); } } export { // expected-note {{export block begins here}} export { // expected-error {{export declaration appears within another export declaration}} void f(); } } void export f7() {} // expected-error {{expected unqualified-id}} export static void f8() {} // expected-error {{declaration of 'f8' with internal linkage cannot be exported}} export void f9(); // expected-note {{previous declaration is here}} static void f9(); // expected-error {{static declaration of 'f9' follows non-static declaration}} static void f10(); // expected-note {{previous declaration is here}} export void f10(); // expected-error {{cannot export redeclaration 'f10' here since the previous declaration has internal linkage}} export void f11(); void f11() {} void f12(); // expected-note{{previous declaration is here}} export void f12() {} // expected-error{{cannot export redeclaration 'f12' here since the previous declaration is not exported}} export float V1; // expected-error {{export declaration can only be used on functions}} static export float V2; // expected-error{{expected unqualified-id}} export static float V3 = 0; // expected-error {{export declaration can only be used on functions}} export groupshared float V4; // expected-error {{export declaration can only be used on functions}} void f6() { export int i; // expected-error {{expected expression}} } export cbuffer CB { // expected-error {{export declaration can only be used on functions}} int a; } export template void tf1(T t) {} // expected-error {{export declaration can only be used on functions}} void f5() export {} // expected-error {{expected function body after function declarator}}