Clean up FFI calls for setting module flags
- Don't rely on enum values defined by LLVM's C++ API - Use safe wrapper functions instead of direct `unsafe` calls - Consistently pass pointer/length strings instead of C strings
This commit is contained in:
parent
ba81dbf3c6
commit
8d2ed4f0f3
5 changed files with 242 additions and 212 deletions
|
@ -352,3 +352,32 @@ impl Drop for OperandBundleDef<'_> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn add_module_flag_u32(
|
||||
module: &Module,
|
||||
merge_behavior: ModuleFlagMergeBehavior,
|
||||
key: &str,
|
||||
value: u32,
|
||||
) {
|
||||
unsafe {
|
||||
LLVMRustAddModuleFlagU32(module, merge_behavior, key.as_c_char_ptr(), key.len(), value);
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn add_module_flag_str(
|
||||
module: &Module,
|
||||
merge_behavior: ModuleFlagMergeBehavior,
|
||||
key: &str,
|
||||
value: &str,
|
||||
) {
|
||||
unsafe {
|
||||
LLVMRustAddModuleFlagString(
|
||||
module,
|
||||
merge_behavior,
|
||||
key.as_c_char_ptr(),
|
||||
key.len(),
|
||||
value.as_c_char_ptr(),
|
||||
value.len(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue