@@ -241,6 +241,7 @@ impl fmt::Debug for c_void {
241
241
not( target_arch = "aarch64" ) ,
242
242
not( target_arch = "powerpc" ) ,
243
243
not( target_arch = "s390x" ) ,
244
+ not( target_arch = "xtensa" ) ,
244
245
not( target_arch = "x86_64" )
245
246
) ,
246
247
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -270,6 +271,7 @@ pub struct VaListImpl<'f> {
270
271
not( target_arch = "aarch64" ) ,
271
272
not( target_arch = "powerpc" ) ,
272
273
not( target_arch = "s390x" ) ,
274
+ not( target_arch = "xtensa" ) ,
273
275
not( target_arch = "x86_64" )
274
276
) ,
275
277
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -377,6 +379,24 @@ pub struct VaListImpl<'f> {
377
379
_marker : PhantomData < & ' f mut & ' f c_void > ,
378
380
}
379
381
382
+ /// xtensa ABI implementation of a `va_list`.
383
+ #[ cfg( target_arch = "xtensa" ) ]
384
+ #[ repr( C ) ]
385
+ #[ derive( Debug ) ]
386
+ #[ unstable(
387
+ feature = "c_variadic" ,
388
+ reason = "the `c_variadic` feature has not been properly tested on \
389
+ all supported platforms",
390
+ issue = "44930"
391
+ ) ]
392
+ #[ lang = "va_list" ]
393
+ pub struct VaListImpl < ' f > {
394
+ stk : * mut i32 ,
395
+ reg : * mut i32 ,
396
+ ndx : i32 ,
397
+ _marker : PhantomData < & ' f mut & ' f i32 > ,
398
+ }
399
+
380
400
/// A wrapper for a `va_list`
381
401
#[ cfg_attr( not( doc) , repr( transparent) ) ] // work around https://github.com/rust-lang/rust/issues/90435
382
402
#[ derive( Debug ) ]
@@ -392,6 +412,7 @@ pub struct VaList<'a, 'f: 'a> {
392
412
not( target_arch = "aarch64" ) ,
393
413
not( target_arch = "powerpc" ) ,
394
414
not( target_arch = "s390x" ) ,
415
+ not( target_arch = "xtensa" ) ,
395
416
not( target_arch = "x86_64" )
396
417
) ,
397
418
all(
@@ -410,6 +431,7 @@ pub struct VaList<'a, 'f: 'a> {
410
431
target_arch = "aarch64" ,
411
432
target_arch = "powerpc" ,
412
433
target_arch = "s390x" ,
434
+ target_arch = "xtensa" ,
413
435
target_arch = "x86_64"
414
436
) ,
415
437
any(
@@ -431,6 +453,7 @@ pub struct VaList<'a, 'f: 'a> {
431
453
not( target_arch = "aarch64" ) ,
432
454
not( target_arch = "powerpc" ) ,
433
455
not( target_arch = "s390x" ) ,
456
+ not( target_arch = "xtensa" ) ,
434
457
not( target_arch = "x86_64" )
435
458
) ,
436
459
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -458,6 +481,7 @@ impl<'f> VaListImpl<'f> {
458
481
target_arch = "aarch64" ,
459
482
target_arch = "powerpc" ,
460
483
target_arch = "s390x" ,
484
+ target_arch = "xtensa" ,
461
485
target_arch = "x86_64"
462
486
) ,
463
487
any(
0 commit comments