// run-pass

// Static recursion check shouldn't fail when given a foreign item (#18279)

// aux-build:check_static_recursion_foreign_helper.rs
// ignore-wasm32-bare no libc to test ffi with

// pretty-expanded FIXME #23616

#![feature(rustc_private)]

extern crate check_static_recursion_foreign_helper;
extern crate libc;

use libc::c_int;

extern "C" {
    static test_static: c_int;
}

pub static B: &'static c_int = unsafe { &test_static };

pub fn main() {}

// run-pass

#![allow(dead_code)]
// Static recursion check shouldn't fail when given a foreign item (#18279)

// aux-build:check_static_recursion_foreign_helper.rs
// ignore-wasm32-bare no libc to test ffi with

// pretty-expanded FIXME #23616

#![feature(rustc_private)]

extern crate check_static_recursion_foreign_helper;
extern crate libc;

use libc::c_int;

#[link(name = "check_static_recursion_foreign_helper")]
extern "C" {
    #[allow(dead_code)]
    static test_static: c_int;
}

static B: &'static c_int = unsafe { &test_static };

pub fn main() {}

--- 
+++ 
@@ -1,5 +1,6 @@
 // run-pass
 
+#![allow(dead_code)]
 // Static recursion check shouldn't fail when given a foreign item (#18279)
 
 // aux-build:check_static_recursion_foreign_helper.rs
@@ -14,10 +15,12 @@
 
 use libc::c_int;
 
+#[link(name = "check_static_recursion_foreign_helper")]
 extern "C" {
+    #[allow(dead_code)]
     static test_static: c_int;
 }
 
-pub static B: &'static c_int = unsafe { &test_static };
+static B: &'static c_int = unsafe { &test_static };
 
 pub fn main() {}
Fix broken test on musl
