@@ -63,7 +63,7 @@ impl AbiMap {
6363
6464 let canon_abi = match ( extern_abi, arch) {
6565 // infallible lowerings
66- ( ExternAbi :: C { .. } | ExternAbi :: Cdecl { .. } , _) => CanonAbi :: C ,
66+ ( ExternAbi :: C { .. } , _) => CanonAbi :: C ,
6767 ( ExternAbi :: Rust | ExternAbi :: RustCall , _) => CanonAbi :: Rust ,
6868 ( ExternAbi :: Unadjusted , _) => CanonAbi :: C ,
6969
@@ -94,12 +94,19 @@ impl AbiMap {
9494 return AbiMapping :: Invalid ;
9595 }
9696
97+ ( ExternAbi :: Cdecl { .. } , Arch :: X86 ) => CanonAbi :: C ,
98+ ( ExternAbi :: Cdecl { .. } , _) => return AbiMapping :: Permissive ( CanonAbi :: C ) ,
99+
97100 ( ExternAbi :: Fastcall { .. } , Arch :: X86 ) => CanonAbi :: X86 ( X86Call :: Fastcall ) ,
98- ( ExternAbi :: Fastcall { .. } , _) if os == OsKind :: Windows => CanonAbi :: C ,
101+ ( ExternAbi :: Fastcall { .. } , _) if os == OsKind :: Windows => {
102+ return AbiMapping :: Permissive ( CanonAbi :: C ) ;
103+ }
99104 ( ExternAbi :: Fastcall { .. } , _) => return AbiMapping :: Invalid ,
100105
101106 ( ExternAbi :: Stdcall { .. } , Arch :: X86 ) => CanonAbi :: X86 ( X86Call :: Stdcall ) ,
102- ( ExternAbi :: Stdcall { .. } , _) if os == OsKind :: Windows => CanonAbi :: C ,
107+ ( ExternAbi :: Stdcall { .. } , _) if os == OsKind :: Windows => {
108+ return AbiMapping :: Permissive ( CanonAbi :: C ) ;
109+ }
103110 ( ExternAbi :: Stdcall { .. } , _) => return AbiMapping :: Invalid ,
104111
105112 ( ExternAbi :: Thiscall { .. } , Arch :: X86 ) => CanonAbi :: X86 ( X86Call :: Thiscall ) ,
@@ -108,7 +115,9 @@ impl AbiMap {
108115 ( ExternAbi :: Vectorcall { .. } , Arch :: X86 | Arch :: X86_64 ) => {
109116 CanonAbi :: X86 ( X86Call :: Vectorcall )
110117 }
111- ( ExternAbi :: Vectorcall { .. } , _) if os == OsKind :: Windows => CanonAbi :: C ,
118+ ( ExternAbi :: Vectorcall { .. } , _) if os == OsKind :: Windows => {
119+ return AbiMapping :: Permissive ( CanonAbi :: C ) ;
120+ }
112121 ( ExternAbi :: Vectorcall { .. } , _) => return AbiMapping :: Invalid ,
113122
114123 ( ExternAbi :: SysV64 { .. } , Arch :: X86_64 ) => CanonAbi :: X86 ( X86Call :: SysV64 ) ,
0 commit comments