From 0a0124306a6a0d406613c5c8c214b78c39f2d173 Mon Sep 17 00:00:00 2001 From: Robert Konicar Date: Fri, 4 Oct 2024 17:12:19 +0200 Subject: [PATCH] cg: Emit external weak linakge for global variables. --- lib/vast/Dialect/Core/Linkage.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/vast/Dialect/Core/Linkage.cpp b/lib/vast/Dialect/Core/Linkage.cpp index b9d6c2127b..217ef5cad3 100644 --- a/lib/vast/Dialect/Core/Linkage.cpp +++ b/lib/vast/Dialect/Core/Linkage.cpp @@ -170,6 +170,13 @@ namespace vast::core { return GlobalLinkageKind::ExternalWeakLinkage; } } + if (const auto *var = llvm::dyn_cast< clang::VarDecl >(decl)) { + if (!var->hasDefinition() && var->isExternallyVisible() + && (var->hasAttr< clang::WeakAttr >() || var->isWeakImported())) + { + return core::GlobalLinkageKind::ExternalWeakLinkage; + } + } if (decl->hasAttr< clang::WeakAttr >()) { if (is_constant)