{ /* Symbols to be exported are selected based on mangled names rather than */ /* the demangled names provided by the `extern "C++"` matcher because it is */ /* easy to express "export everything defined in the sycl namespace" using */ /* the former. Matching demangled names is more complicated in the presence */ /* of examples like: */ /* "vtable for sycl::foo" (should be exported) */ /* "vtable for std::__internal" (should not be exported) */ global: /* Export everything from sycl namespace */ _ZNK4sycl*; /* function */ _ZN4sycl*; /* function */ _ZTIN4sycl*; /* typeinfo */ _ZTSN4sycl*; /* typeinfo name */ _ZTVN4sycl*; /* vtable */ /* Export offload image hooks */ __sycl_register_lib; __sycl_unregister_lib; local: *; };