summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-lower-to-ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
-rw-r--r--source/slang/slang-lower-to-ir.cpp17
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();