| { |
| /* 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<sycl::foo>" (should not be exported) */ |
| |
| global: |
| /* Export everything from sycl namespace */ |
| _ZNK4sycl*; /* function */ |
| _ZN4sycl*; /* function */ |
| _ZTIN4sycl*; /* typeinfo */ |
| _ZTSN4sycl*; /* typeinfo name */ |
| _ZTVN4sycl*; /* vtable */ |
| |
| local: |
| *; |
| }; |