; ModuleID = 'global_static.c'
source_filename = "global_static.c"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { %struct.__pthread_internal_list*, %struct.__pthread_internal_list* }
@rust_libloading_dlerror_mutex = weak global %union.pthread_mutex_t zeroinitializer, align 8
; Function Attrs: nounwind sspstrong uwtable
define weak void @rust_libloading_dlerror_mutex_lock() local_unnamed_addr #0 {
%1 = tail call i32 @pthread_mutex_lock(%union.pthread_mutex_t* nonnull @rust_libloading_dlerror_mutex) #3
%2 = icmp eq i32 %1, 0
br i1 %2, label %4, label %3
; <label>:3: ; preds = %0
tail call void @abort() #4
unreachable
; <label>:4: ; preds = %0
ret void
}
; Function Attrs: nounwind
declare i32 @pthread_mutex_lock(%union.pthread_mutex_t*) local_unnamed_addr #1
; Function Attrs: noreturn nounwind
declare void @abort() local_unnamed_addr #2
; Function Attrs: nounwind sspstrong uwtable
define weak void @rust_libloading_dlerror_mutex_unlock() local_unnamed_addr #0 {
%1 = tail call i32 @pthread_mutex_unlock(%union.pthread_mutex_t* nonnull @rust_libloading_dlerror_mutex) #3
%2 = icmp eq i32 %1, 0
br i1 %2, label %4, label %3
; <label>:3: ; preds = %0
tail call void @abort() #4
unreachable
; <label>:4: ; preds = %0
ret void
}
; Function Attrs: nounwind
declare i32 @pthread_mutex_unlock(%union.pthread_mutex_t*) local_unnamed_addr #1
attributes #0 = { nounwind sspstrong uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="4" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="4" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #2 = { noreturn nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="4" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { nounwind }
attributes #4 = { noreturn nounwind }
!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}
!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"PIC Level", i32 2}
!2 = !{!"clang version 5.0.1 (tags/RELEASE_501/final)"}