about summary refs log tree commit diff
path: root/tests/codegen/llvm_module_flags.rs
diff options
context:
space:
mode:
authorPaul Menage <menage@gmail.com>2023-10-09 02:22:14 -0700
committerPaul Menage <menage@gmail.com>2023-11-11 19:48:47 -0800
commit2e6b57541dc28cdd954b1ce2300b88ccc5c29d5c (patch)
tree8055acc6e3dfb970acd642a19c9b7dea5c583c7a /tests/codegen/llvm_module_flags.rs
parent2c1b65ee1431f8d3fe2142e821eb13c623bbf8a0 (diff)
downloadrust-2e6b57541dc28cdd954b1ce2300b88ccc5c29d5c.tar.gz
rust-2e6b57541dc28cdd954b1ce2300b88ccc5c29d5c.zip
Add -Z llvm_module_flag
Allow adding values to the `!llvm.module.flags` metadata for a generated
module.  The syntax is

`-Z llvm_module_flag=<name>:<type>:<value>:<behavior>`

Currently only u32 values are supported but the type is required to be
specified for forward compatibility.  The `behavior` element must match
one of the named LLVM metadata behaviors.viors.

This flag is expected to be perma-unstable.
Diffstat (limited to 'tests/codegen/llvm_module_flags.rs')
-rw-r--r--tests/codegen/llvm_module_flags.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/codegen/llvm_module_flags.rs b/tests/codegen/llvm_module_flags.rs
new file mode 100644
index 00000000000..acc035086de
--- /dev/null
+++ b/tests/codegen/llvm_module_flags.rs
@@ -0,0 +1,7 @@
+// Test for -Z llvm_module_flags
+// compile-flags: -Z llvm_module_flag=foo:u32:123:error -Z llvm_module_flag=bar:u32:42:max
+
+fn main() {}
+
+// CHECK: !{i32 1, !"foo", i32 123}
+// CHECK: !{i32 7, !"bar", i32 42}