@@ -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" ) ) ,
@@ -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" , target_os = "tvos" ) ) ,
@@ -371,6 +373,24 @@ pub struct VaListImpl<'f> {
371
373
_marker : PhantomData < & ' f mut & ' f c_void > ,
372
374
}
373
375
376
+ /// xtensa ABI implementation of a `va_list`.
377
+ #[ cfg( target_arch = "xtensa" ) ]
378
+ #[ repr( C ) ]
379
+ #[ derive( Debug ) ]
380
+ #[ unstable(
381
+ feature = "c_variadic" ,
382
+ reason = "the `c_variadic` feature has not been properly tested on \
383
+ all supported platforms",
384
+ issue = "44930"
385
+ ) ]
386
+ #[ lang = "va_list" ]
387
+ pub struct VaListImpl < ' f > {
388
+ stk : * mut i32 ,
389
+ reg : * mut i32 ,
390
+ ndx : i32 ,
391
+ _marker : PhantomData < & ' f mut & ' f i32 > ,
392
+ }
393
+
374
394
/// A wrapper for a `va_list`
375
395
#[ cfg_attr( not( doc) , repr( transparent) ) ] // work around https://github.com/rust-lang/rust/issues/90435
376
396
#[ derive( Debug ) ]
@@ -386,6 +406,7 @@ pub struct VaList<'a, 'f: 'a> {
386
406
not( target_arch = "aarch64" ) ,
387
407
not( target_arch = "powerpc" ) ,
388
408
not( target_arch = "s390x" ) ,
409
+ not( target_arch = "xtensa" ) ,
389
410
not( target_arch = "x86_64" )
390
411
) ,
391
412
all(
@@ -403,6 +424,7 @@ pub struct VaList<'a, 'f: 'a> {
403
424
target_arch = "aarch64" ,
404
425
target_arch = "powerpc" ,
405
426
target_arch = "s390x" ,
427
+ target_arch = "xtensa" ,
406
428
target_arch = "x86_64"
407
429
) ,
408
430
any(
@@ -423,6 +445,7 @@ pub struct VaList<'a, 'f: 'a> {
423
445
not( target_arch = "aarch64" ) ,
424
446
not( target_arch = "powerpc" ) ,
425
447
not( target_arch = "s390x" ) ,
448
+ not( target_arch = "xtensa" ) ,
426
449
not( target_arch = "x86_64" )
427
450
) ,
428
451
all( target_arch = "aarch64" , any( target_os = "macos" , target_os = "ios" , target_os = "tvos" ) ) ,
@@ -449,6 +472,7 @@ impl<'f> VaListImpl<'f> {
449
472
target_arch = "aarch64" ,
450
473
target_arch = "powerpc" ,
451
474
target_arch = "s390x" ,
475
+ target_arch = "xtensa" ,
452
476
target_arch = "x86_64"
453
477
) ,
454
478
any(
0 commit comments