// Verify linkage of external symbols in the static relocation model on MSVC.
//
//@ compile-flags: -O -C relocation-model=static
//@ aux-build: extern_decl.rs
//@ only-x86_64-pc-windows-msvc

#![crate_type = "rlib"]

extern crate extern_decl;

// The `extern_decl` definitions are imported from a statically linked rust
// crate, thus they are expected to be marked `dso_local` without `dllimport`.
//
// The `access_extern()` symbol is from this compilation unit, thus we expect
// it to be marked `dso_local` as well, given the static relocation model.
//
// CHECK: @extern_static = external dso_local local_unnamed_addr global i8
// CHECK: define dso_local noundef i8 @access_extern() {{.*}}
// CHECK: declare dso_local noundef i8 @extern_fn() {{.*}}

#[no_mangle]
pub fn access_extern() -> u8 {
    unsafe { extern_decl::extern_fn() + extern_decl::extern_static }
}
