// { dg-additional-options -fmodules-ts } export module frob; // { dg-module-cmi !frob } int x (); export int x (); // { dg-error "conflicting exporting for declaration" } int y; export extern int y; // { dg-error "conflicting exporting for declaration" } // A typedef is not an entity so the following is OK; see [module.interface] example 4 typedef int z; export typedef int z; // { dg-bogus "conflicting exporting for declaration" } template using w = T; export template using w = T; // { dg-error "conflicting exporting for declaration" } template int f (T); export template int f (T); // { dg-error "conflicting exporting for declaration" } class A; export class A; // { dg-error "conflicting exporting for declaration" } template struct B; export template struct B {}; // { dg-error "conflicting exporting for declaration" }