From b8702dfb6d0e41515fa0f9f899d86b7935dfc3fd Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 25 Aug 2020 21:55:05 -0700 Subject: Export witness table and RTTI objects in compiled libraries. (#1514) * Export witness table objects in compiled code. - Ensure that witness tables are preceeded with `extern "C"` modifier in the generated C++ code. - RTTI objects use the mangled name of the type directly, so that can be queried using the type's mangled name directly from the resulting DLL. - Expose `Linkage::getTypeConformanceWitnessMangledName` to return the mangled name of witness tables to the host. - Ensure that all witness tables (including those for associated types) have proper mangled name. * Fix GCC error in Slang generated code. --- slang.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'slang.h') diff --git a/slang.h b/slang.h index e00b813a8..1b79f97ab 100644 --- a/slang.h +++ b/slang.h @@ -3102,6 +3102,13 @@ namespace slang LayoutRules rules = LayoutRules::Default, ISlangBlob** outDiagnostics = nullptr) = 0; + /** Get the mangled name for a type witness. + */ + virtual SLANG_NO_THROW SlangResult SLANG_MCALL getTypeConformanceWitnessMangledName( + TypeReflection* type, + TypeReflection* interfaceType, + ISlangBlob** outNameBlob) = 0; + /** Create a request to load/compile front-end code. */ virtual SLANG_NO_THROW SlangResult SLANG_MCALL createCompileRequest( -- cgit v1.2.3