aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm.zig
diff options
context:
space:
mode:
authorTw <tw19881113@gmail.com>2023-04-20 19:12:41 +0800
committerGitHub <noreply@github.com>2023-04-20 11:12:41 +0000
commit31b6d14bf76fa6b78013a6a32d3066e882d64043 (patch)
tree7a31da91ca6515f1fbb2bcea8023e6b4c9aea63a /src/codegen/llvm.zig
parentd80e6ca5a6843cb3911ec2d0b2da8b4ae515202a (diff)
downloadzig-31b6d14bf76fa6b78013a6a32d3066e882d64043.tar.gz
zig-31b6d14bf76fa6b78013a6a32d3066e882d64043.zip
llvm: emit metadata for exported global variables (#15349)
* llvm: emit metadata for global variable One use case is to genearte BTF information from global variable's metadata. Signed-off-by: Tw <weii.tan>
Diffstat (limited to 'src/codegen/llvm.zig')
-rw-r--r--src/codegen/llvm.zig5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 80c9f0d024..47b47cc807 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -2549,7 +2549,7 @@ pub const DeclGen = struct {
const line_number = decl.src_line + 1;
const is_internal_linkage = !dg.module.decl_exports.contains(decl_index);
- const di_global = dib.createGlobalVariable(
+ const di_global = dib.createGlobalVariableExpression(
di_file.toScope(),
decl.name,
global.getValueName(),
@@ -2559,7 +2559,8 @@ pub const DeclGen = struct {
is_internal_linkage,
);
- try dg.object.di_map.put(dg.gpa, dg.decl, di_global.toNode());
+ try dg.object.di_map.put(dg.gpa, dg.decl, di_global.getVariable().toNode());
+ if (!is_internal_linkage) global.attachMetaData(di_global);
}
}
}