@@ -130,19 +130,31 @@ fn require_c_abi_if_c_variadic(
130130    let  extern_system_varargs = tcx. features ( ) . extern_system_varargs ( ) ; 
131131    let  conventions = if  extended_abi_support {  CONVENTIONS_UNSTABLE  }  else  {  CONVENTIONS_STABLE  } ; 
132132    match  abi { 
133-         // User enabled additional ABI support for varargs and function ABI matches those ones. 
134-         ExternAbi :: System  {  .. }  if  extern_system_varargs => return , 
135-         abi if  abi. supports_varargs ( )  && extended_abi_support => return , 
136- 
137-         // Using this ABI would be ok, if the feature for additional ABI support was enabled. 
138133        ExternAbi :: System  {  .. }  => { 
139-             feature_err ( & tcx. sess ,  sym:: extern_system_varargs,  span,  UNSTABLE_EXPLAIN ) . emit ( ) ; 
134+             // User enabled additional ABI support for varargs and function ABI matches those ones. 
135+             if  extern_system_varargs { 
136+                 return ; 
137+             }  else  { 
138+                 // Using this ABI would be ok, if the feature for additional ABI support was enabled. 
139+                 feature_err ( & tcx. sess ,  sym:: extern_system_varargs,  span,  UNSTABLE_EXPLAIN ) . emit ( ) ; 
140+             } 
140141        } 
141142        abi => { 
142-             if  abi. supports_varargs ( )  && !extended_abi_support { 
143-                 feature_err ( & tcx. sess ,  sym:: extended_varargs_abi_support,  span,  UNSTABLE_EXPLAIN ) 
143+             if  abi. supports_varargs ( )  { 
144+                 // User enabled additional ABI support for varargs and function ABI matches those ones. 
145+                 if  extended_abi_support { 
146+                     return ; 
147+                 }  else  { 
148+                     // Using this ABI would be ok, if the feature for additional ABI support was enabled. 
149+                     feature_err ( 
150+                         & tcx. sess , 
151+                         sym:: extended_varargs_abi_support, 
152+                         span, 
153+                         UNSTABLE_EXPLAIN , 
154+                     ) 
144155                    . emit ( ) ; 
145-             } ; 
156+                 } ; 
157+             } 
146158        } 
147159    } ; 
148160
0 commit comments