@@ -237,6 +237,7 @@ impl fmt::Debug for c_void {
237
237
not( target_arch = "aarch64" ) ,
238
238
not( target_arch = "powerpc" ) ,
239
239
not( target_arch = "s390x" ) ,
240
+ not( target_arch = "xtensa" ) ,
240
241
not( target_arch = "x86_64" )
241
242
) ,
242
243
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -266,6 +267,7 @@ pub struct VaListImpl<'f> {
266
267
not( target_arch = "aarch64" ) ,
267
268
not( target_arch = "powerpc" ) ,
268
269
not( target_arch = "s390x" ) ,
270
+ not( target_arch = "xtensa" ) ,
269
271
not( target_arch = "x86_64" )
270
272
) ,
271
273
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -373,6 +375,24 @@ pub struct VaListImpl<'f> {
373
375
_marker : PhantomData < & ' f mut & ' f c_void > ,
374
376
}
375
377
378
+ /// xtensa ABI implementation of a `va_list`.
379
+ #[ cfg( target_arch = "xtensa" ) ]
380
+ #[ repr( C ) ]
381
+ #[ derive( Debug ) ]
382
+ #[ unstable(
383
+ feature = "c_variadic" ,
384
+ reason = "the `c_variadic` feature has not been properly tested on \
385
+ all supported platforms",
386
+ issue = "44930"
387
+ ) ]
388
+ #[ lang = "va_list" ]
389
+ pub struct VaListImpl < ' f > {
390
+ stk : * mut i32 ,
391
+ reg : * mut i32 ,
392
+ ndx : i32 ,
393
+ _marker : PhantomData < & ' f mut & ' f i32 > ,
394
+ }
395
+
376
396
/// A wrapper for a `va_list`
377
397
#[ cfg_attr( not( doc) , repr( transparent) ) ] // work around https://github.com/rust-lang/rust/issues/90435
378
398
#[ derive( Debug ) ]
@@ -388,6 +408,7 @@ pub struct VaList<'a, 'f: 'a> {
388
408
not( target_arch = "aarch64" ) ,
389
409
not( target_arch = "powerpc" ) ,
390
410
not( target_arch = "s390x" ) ,
411
+ not( target_arch = "xtensa" ) ,
391
412
not( target_arch = "x86_64" )
392
413
) ,
393
414
all(
@@ -406,6 +427,7 @@ pub struct VaList<'a, 'f: 'a> {
406
427
target_arch = "aarch64" ,
407
428
target_arch = "powerpc" ,
408
429
target_arch = "s390x" ,
430
+ target_arch = "xtensa" ,
409
431
target_arch = "x86_64"
410
432
) ,
411
433
any(
@@ -427,6 +449,7 @@ pub struct VaList<'a, 'f: 'a> {
427
449
not( target_arch = "aarch64" ) ,
428
450
not( target_arch = "powerpc" ) ,
429
451
not( target_arch = "s390x" ) ,
452
+ not( target_arch = "xtensa" ) ,
430
453
not( target_arch = "x86_64" )
431
454
) ,
432
455
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -454,6 +477,7 @@ impl<'f> VaListImpl<'f> {
454
477
target_arch = "aarch64" ,
455
478
target_arch = "powerpc" ,
456
479
target_arch = "s390x" ,
480
+ target_arch = "xtensa" ,
457
481
target_arch = "x86_64"
458
482
) ,
459
483
any(
0 commit comments