diff options
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
| -rw-r--r-- | source/slang/slang-lower-to-ir.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp index d4b069dca..b2a71a2e0 100644 --- a/source/slang/slang-lower-to-ir.cpp +++ b/source/slang/slang-lower-to-ir.cpp @@ -1034,7 +1034,7 @@ static void addLinkageDecoration( inst = outerGeneric; } - if(isImportedDecl(context, decl)) + if (isImportedDecl(context, decl)) { builder->addImportDecoration(inst, mangledName); } @@ -1047,6 +1047,14 @@ static void addLinkageDecoration( builder->addPublicDecoration(inst); builder->addKeepAliveDecoration(inst); } + if (decl->findModifier<__exportDirectly>()) + { + builder->addExportDirectlyDecoration(inst); + } + if (decl->findModifier<__externLib>()) + { + builder->addExternLibDecoration(inst); + } } static void addLinkageDecoration( @@ -1986,7 +1994,12 @@ static String getNameForNameHint( StringBuilder sb; sb.append(parentName); - sb.append("."); + if (decl->hasModifier<__exportDirectly>()) { + sb.append("::"); + } + else { + sb.append("."); + } sb.append(leafName->text); return sb.ProduceString(); |
