@@ -212,6 +212,7 @@ impl fmt::Debug for c_void {
212
212
not( target_arch = "aarch64" ) ,
213
213
not( target_arch = "powerpc" ) ,
214
214
not( target_arch = "s390x" ) ,
215
+ not( target_arch = "xtensa" ) ,
215
216
not( target_arch = "x86_64" )
216
217
) ,
217
218
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
@@ -240,6 +241,7 @@ pub struct VaListImpl<'f> {
240
241
not( target_arch = "aarch64" ) ,
241
242
not( target_arch = "powerpc" ) ,
242
243
not( target_arch = "s390x" ) ,
244
+ not( target_arch = "xtensa" ) ,
243
245
not( target_arch = "x86_64" )
244
246
) ,
245
247
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
@@ -346,6 +348,24 @@ pub struct VaListImpl<'f> {
346
348
_marker : PhantomData < & ' f mut & ' f c_void > ,
347
349
}
348
350
351
+ /// xtensa ABI implementation of a `va_list`.
352
+ #[ cfg( target_arch = "xtensa" ) ]
353
+ #[ repr( C ) ]
354
+ #[ derive( Debug ) ]
355
+ #[ unstable(
356
+ feature = "c_variadic" ,
357
+ reason = "the `c_variadic` feature has not been properly tested on \
358
+ all supported platforms",
359
+ issue = "44930"
360
+ ) ]
361
+ #[ lang = "va_list" ]
362
+ pub struct VaListImpl < ' f > {
363
+ stk : * mut i32 ,
364
+ reg : * mut i32 ,
365
+ ndx : i32 ,
366
+ _marker : PhantomData < & ' f mut & ' f i32 > ,
367
+ }
368
+
349
369
/// A wrapper for a `va_list`
350
370
#[ cfg_attr( not( doc) , repr( transparent) ) ] // work around https://github.com/rust-lang/rust/issues/90435
351
371
#[ derive( Debug ) ]
@@ -361,6 +381,7 @@ pub struct VaList<'a, 'f: 'a> {
361
381
not( target_arch = "aarch64" ) ,
362
382
not( target_arch = "powerpc" ) ,
363
383
not( target_arch = "s390x" ) ,
384
+ not( target_arch = "xtensa" ) ,
364
385
not( target_arch = "x86_64" )
365
386
) ,
366
387
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
@@ -375,6 +396,7 @@ pub struct VaList<'a, 'f: 'a> {
375
396
target_arch = "aarch64" ,
376
397
target_arch = "powerpc" ,
377
398
target_arch = "s390x" ,
399
+ target_arch = "xtensa" ,
378
400
target_arch = "x86_64"
379
401
) ,
380
402
any( not( target_arch = "aarch64" ) , not( target_vendor = "apple" ) ) ,
@@ -392,6 +414,7 @@ pub struct VaList<'a, 'f: 'a> {
392
414
not( target_arch = "aarch64" ) ,
393
415
not( target_arch = "powerpc" ) ,
394
416
not( target_arch = "s390x" ) ,
417
+ not( target_arch = "xtensa" ) ,
395
418
not( target_arch = "x86_64" )
396
419
) ,
397
420
all( target_arch = "aarch64" , target_vendor = "apple" ) ,
@@ -418,6 +441,7 @@ impl<'f> VaListImpl<'f> {
418
441
target_arch = "aarch64" ,
419
442
target_arch = "powerpc" ,
420
443
target_arch = "s390x" ,
444
+ target_arch = "xtensa" ,
421
445
target_arch = "x86_64"
422
446
) ,
423
447
any( not( target_arch = "aarch64" ) , not( target_vendor = "apple" ) ) ,
0 commit comments