---
source: crates/mun_codegen/src/test.rs
expression: "\n extern fn extern_fn() -> f32;\n\n fn private_fn() -> f32 {\n extern_fn()\n }\n\n pub fn main() -> f32 {\n private_fn()\n }\n "
---
; == FILE IR (mod) =====================================
; ModuleID = 'mod'
source_filename = "mod"
%DispatchTable = type { float ()* }
@dispatchTable = external global %DispatchTable
@global_type_lookup_table = external global [1 x i64*]
define float @private_fn() {
body:
%extern_fn_ptr = load float ()*, float ()** getelementptr inbounds (%DispatchTable, %DispatchTable* @dispatchTable, i32 0, i32 0), align 8
%extern_fn = call float %extern_fn_ptr()
ret float %extern_fn
}
define float @main() {
body:
%private_fn = call float @private_fn()
ret float %private_fn
}
; == GROUP IR (mod) ====================================
; ModuleID = 'group_name'
source_filename = "group_name"
%DispatchTable = type { float ()* }
@dispatchTable = global %DispatchTable zeroinitializer
@global_type_lookup_table = global [1 x i64*] zeroinitializer