@@ -236,6 +236,7 @@ impl fmt::Debug for c_void {
236
236
not( target_arch = "aarch64" ) ,
237
237
not( target_arch = "powerpc" ) ,
238
238
not( target_arch = "s390x" ) ,
239
+ not( target_arch = "xtensa" ) ,
239
240
not( target_arch = "x86_64" )
240
241
) ,
241
242
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" ) ) ,
@@ -265,6 +266,7 @@ pub struct VaListImpl<'f> {
265
266
not( target_arch = "aarch64" ) ,
266
267
not( target_arch = "powerpc" ) ,
267
268
not( target_arch = "s390x" ) ,
269
+ not( target_arch = "xtensa" ) ,
268
270
not( target_arch = "x86_64" )
269
271
) ,
270
272
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" ) ) ,
@@ -372,6 +374,24 @@ pub struct VaListImpl<'f> {
372
374
_marker : PhantomData < & ' f mut & ' f c_void > ,
373
375
}
374
376
377
+ /// xtensa ABI implementation of a `va_list`.
378
+ #[ cfg( target_arch = "xtensa" ) ]
379
+ #[ repr( C ) ]
380
+ #[ derive( Debug ) ]
381
+ #[ unstable(
382
+ feature = "c_variadic" ,
383
+ reason = "the `c_variadic` feature has not been properly tested on \
384
+ all supported platforms",
385
+ issue = "44930"
386
+ ) ]
387
+ #[ lang = "va_list" ]
388
+ pub struct VaListImpl < ' f > {
389
+ stk : * mut i32 ,
390
+ reg : * mut i32 ,
391
+ ndx : i32 ,
392
+ _marker : PhantomData < & ' f mut & ' f i32 > ,
393
+ }
394
+
375
395
/// A wrapper for a `va_list`
376
396
#[ cfg_attr( not( doc) , repr( transparent) ) ] // work around https://github.com/rust-lang/rust/issues/90435
377
397
#[ derive( Debug ) ]
@@ -387,6 +407,7 @@ pub struct VaList<'a, 'f: 'a> {
387
407
not( target_arch = "aarch64" ) ,
388
408
not( target_arch = "powerpc" ) ,
389
409
not( target_arch = "s390x" ) ,
410
+ not( target_arch = "xtensa" ) ,
390
411
not( target_arch = "x86_64" )
391
412
) ,
392
413
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" ) ) ,
@@ -402,6 +423,7 @@ pub struct VaList<'a, 'f: 'a> {
402
423
target_arch = "aarch64" ,
403
424
target_arch = "powerpc" ,
404
425
target_arch = "s390x" ,
426
+ target_arch = "xtensa" ,
405
427
target_arch = "x86_64"
406
428
) ,
407
429
any( not( target_arch = "aarch64" ) , not( any( target_os = "macos" , target_os = "ios" ) ) ) ,
@@ -420,6 +442,7 @@ pub struct VaList<'a, 'f: 'a> {
420
442
not( target_arch = "aarch64" ) ,
421
443
not( target_arch = "powerpc" ) ,
422
444
not( target_arch = "s390x" ) ,
445
+ not( target_arch = "xtensa" ) ,
423
446
not( target_arch = "x86_64" )
424
447
) ,
425
448
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" ) ) ,
@@ -447,6 +470,7 @@ impl<'f> VaListImpl<'f> {
447
470
target_arch = "aarch64" ,
448
471
target_arch = "powerpc" ,
449
472
target_arch = "s390x" ,
473
+ target_arch = "xtensa" ,
450
474
target_arch = "x86_64"
451
475
) ,
452
476
any( not( target_arch = "aarch64" ) , not( any( target_os = "macos" , target_os = "ios" ) ) ) ,
0 commit comments