@@ -211,6 +211,7 @@ impl fmt::Debug for c_void {
211
211
not( target_arch = "aarch64" ) ,
212
212
not( target_arch = "powerpc" ) ,
213
213
not( target_arch = "s390x" ) ,
214
+ not( target_arch = "xtensa" ) ,
214
215
not( target_arch = "x86_64" )
215
216
) ,
216
217
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -239,6 +240,7 @@ pub struct VaListImpl<'f> {
239
240
not( target_arch = "aarch64" ) ,
240
241
not( target_arch = "powerpc" ) ,
241
242
not( target_arch = "s390x" ) ,
243
+ not( target_arch = "xtensa" ) ,
242
244
not( target_arch = "x86_64" )
243
245
) ,
244
246
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -345,6 +347,24 @@ pub struct VaListImpl<'f> {
345
347
_marker : PhantomData < & ' f mut & ' f c_void > ,
346
348
}
347
349
350
+ /// xtensa ABI implementation of a `va_list`.
351
+ #[ cfg( target_arch = "xtensa" ) ]
352
+ #[ repr( C ) ]
353
+ #[ derive( Debug ) ]
354
+ #[ unstable(
355
+ feature = "c_variadic" ,
356
+ reason = "the `c_variadic` feature has not been properly tested on \
357
+ all supported platforms",
358
+ issue = "44930"
359
+ ) ]
360
+ #[ lang = "va_list" ]
361
+ pub struct VaListImpl < ' f > {
362
+ stk : * mut i32 ,
363
+ reg : * mut i32 ,
364
+ ndx : i32 ,
365
+ _marker : PhantomData < & ' f mut & ' f i32 > ,
366
+ }
367
+
348
368
/// A wrapper for a `va_list`
349
369
#[ cfg_attr( not( doc) , repr( transparent) ) ] // work around https://github.com/rust-lang/rust/issues/90435
350
370
#[ derive( Debug ) ]
@@ -360,6 +380,7 @@ pub struct VaList<'a, 'f: 'a> {
360
380
not( target_arch = "aarch64" ) ,
361
381
not( target_arch = "powerpc" ) ,
362
382
not( target_arch = "s390x" ) ,
383
+ not( target_arch = "xtensa" ) ,
363
384
not( target_arch = "x86_64" )
364
385
) ,
365
386
all(
@@ -377,6 +398,7 @@ pub struct VaList<'a, 'f: 'a> {
377
398
target_arch = "aarch64" ,
378
399
target_arch = "powerpc" ,
379
400
target_arch = "s390x" ,
401
+ target_arch = "xtensa" ,
380
402
target_arch = "x86_64"
381
403
) ,
382
404
any(
@@ -397,6 +419,7 @@ pub struct VaList<'a, 'f: 'a> {
397
419
not( target_arch = "aarch64" ) ,
398
420
not( target_arch = "powerpc" ) ,
399
421
not( target_arch = "s390x" ) ,
422
+ not( target_arch = "xtensa" ) ,
400
423
not( target_arch = "x86_64" )
401
424
) ,
402
425
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -423,6 +446,7 @@ impl<'f> VaListImpl<'f> {
423
446
target_arch = "aarch64" ,
424
447
target_arch = "powerpc" ,
425
448
target_arch = "s390x" ,
449
+ target_arch = "xtensa" ,
426
450
target_arch = "x86_64"
427
451
) ,
428
452
any(
0 commit comments