@@ -1294,7 +1294,7 @@ impl<'a> Generator<'a> {
1294
1294
t ! ( writeln!(
1295
1295
self . rust,
1296
1296
r#"
1297
- extern {{
1297
+ extern "C" {{
1298
1298
#[allow(non_snake_case)]
1299
1299
fn __test_offset_{ty}_{field}() -> u64;
1300
1300
#[allow(non_snake_case)]
@@ -1347,7 +1347,7 @@ impl<'a> Generator<'a> {
1347
1347
t ! ( writeln!(
1348
1348
self . rust,
1349
1349
r#"
1350
- extern {{
1350
+ extern "C" {{
1351
1351
#[allow(non_snake_case)]
1352
1352
fn __test_field_type_{ty}_{field}(a: *mut {ty})
1353
1353
-> *mut u8;
@@ -1402,7 +1402,7 @@ impl<'a> Generator<'a> {
1402
1402
#[allow(non_snake_case)]
1403
1403
#[inline(never)]
1404
1404
fn size_align_{ty}() {{
1405
- extern {{
1405
+ extern "C" {{
1406
1406
#[allow(non_snake_case)]
1407
1407
fn __test_size_{ty}() -> u64;
1408
1408
#[allow(non_snake_case)]
@@ -1467,7 +1467,7 @@ impl<'a> Generator<'a> {
1467
1467
#[inline(never)]
1468
1468
#[allow(non_snake_case)]
1469
1469
fn sign_{ty}() {{
1470
- extern {{
1470
+ extern "C" {{
1471
1471
#[allow(non_snake_case)]
1472
1472
fn __test_signed_{ty}() -> u32;
1473
1473
}}
@@ -1533,7 +1533,7 @@ impl<'a> Generator<'a> {
1533
1533
#[inline(never)]
1534
1534
#[allow(non_snake_case)]
1535
1535
fn const_{name}() {{
1536
- extern {{
1536
+ extern "C" {{
1537
1537
#[allow(non_snake_case)]
1538
1538
fn __test_const_{name}() -> *const *const u8;
1539
1539
}}
@@ -1554,7 +1554,7 @@ impl<'a> Generator<'a> {
1554
1554
r#"
1555
1555
#[allow(non_snake_case)]
1556
1556
fn const_{name}() {{
1557
- extern {{
1557
+ extern "C" {{
1558
1558
#[allow(non_snake_case)]
1559
1559
fn __test_const_{name}() -> *const {ty};
1560
1560
}}
@@ -1661,7 +1661,7 @@ impl<'a> Generator<'a> {
1661
1661
#[allow(non_snake_case)]
1662
1662
#[inline(never)]
1663
1663
fn fn_{name}() {{
1664
- extern {{
1664
+ extern "C" {{
1665
1665
#[allow(non_snake_case)]
1666
1666
fn __test_fn_{name}() -> *mut u32;
1667
1667
}}
@@ -1701,7 +1701,7 @@ impl<'a> Generator<'a> {
1701
1701
1702
1702
let c_name = c_name. unwrap_or_else ( || name. to_string ( ) ) ;
1703
1703
1704
- if rust_ty. contains ( "extern fn" ) {
1704
+ if rust_ty. contains ( "extern fn" ) || rust_ty . contains ( "extern \" C \" fn" ) {
1705
1705
let sig = c_ty. replacen ( "(*)" , & format ! ( "(* __test_static_{}(void))" , name) , 1 ) ;
1706
1706
t ! ( writeln!(
1707
1707
self . c,
@@ -1719,7 +1719,7 @@ impl<'a> Generator<'a> {
1719
1719
#[inline(never)]
1720
1720
#[allow(non_snake_case)]
1721
1721
fn static_{name}() {{
1722
- extern {{
1722
+ extern "C" {{
1723
1723
#[allow(non_snake_case)]
1724
1724
fn __test_static_{name}() -> {ty};
1725
1725
}}
@@ -1764,7 +1764,7 @@ impl<'a> Generator<'a> {
1764
1764
#[inline(never)]
1765
1765
#[allow(non_snake_case)]
1766
1766
fn static_{name}() {{
1767
- extern {{
1767
+ extern "C" {{
1768
1768
#[allow(non_snake_case)]
1769
1769
fn __test_static_{name}() -> *{mutbl} {ty};
1770
1770
}}
@@ -1809,7 +1809,7 @@ impl<'a> Generator<'a> {
1809
1809
#[allow(non_snake_case)]
1810
1810
#[inline(never)]
1811
1811
fn static_{name}() {{
1812
- extern {{
1812
+ extern "C" {{
1813
1813
#[allow(non_snake_case)]
1814
1814
fn __test_static_{name}() -> *{mutbl} {ty};
1815
1815
}}
@@ -1991,7 +1991,7 @@ impl<'a> Generator<'a> {
1991
1991
use libc::c_int;
1992
1992
type U = {ty};
1993
1993
#[allow(improper_ctypes)]
1994
- extern {{
1994
+ extern "C" {{
1995
1995
#[allow(non_snake_case)]
1996
1996
fn __test_roundtrip_{ty}(
1997
1997
size: i32, x: U, e: *mut c_int, pad: *const u8
@@ -2106,7 +2106,7 @@ impl<'a> Generator<'a> {
2106
2106
ast:: FunctionRetTy :: Default ( ..) => "()" . to_string ( ) ,
2107
2107
ast:: FunctionRetTy :: Ty ( ref t) => self . ty2name ( t, rust) ,
2108
2108
} ;
2109
- format ! ( "extern fn({}) -> {}" , args, ret)
2109
+ format ! ( "extern \" C \" fn({}) -> {}" , args, ret)
2110
2110
} else {
2111
2111
assert ! ( t. lifetimes. is_empty( ) ) ;
2112
2112
let ( ret, mut args, variadic) = self . decl2rust ( & t. decl ) ;
0 commit comments