@@ -485,8 +485,7 @@ sub symbKeywordTypeInit( )
485485 '' subtype mangle modifier
486486 '' don't clone struct, back patch the original only, see note in cMangleModifier()
487487 '' TODO: s = symbCloneSymbol( s )
488- symbSetUdtIsValistStruct( s )
489- symbSetUdtIsValistStructArray( s )
488+ symbSetUdtValistType( s, FB_CVA_LIST_BUILTIN_C_STD )
490489
491490 '' type cva_list as __va_list_tag alias "__builtin_va_list[]"
492491 symbAddTypedef( pid, typeSetMangleDt( symbGetType( s ), FB_DATATYPE_VA_LIST ), s, symbGetLen( s ) )
@@ -524,7 +523,29 @@ sub symbKeywordTypeInit( )
524523 '' subtype mangle modifier
525524 '' don't clone struct, back patch the original only, see note in cMangleModifier()
526525 '' TODO: s = symbCloneSymbol( s )
527- symbSetUdtIsValistStruct( s )
526+ symbSetUdtValistType( s, FB_CVA_LIST_BUILTIN_AARCH64 )
527+
528+ '' type cva_list as __va_list alias "__builtin_va_list"
529+ symbAddTypedef( pid, typeSetMangleDt( symbGetType( s ), FB_DATATYPE_VA_LIST ), s, symbGetLen( s ) )
530+
531+ case FB_CVA_LIST_BUILTIN_ARM
532+ '' cva_list is from ARM definition:
533+ '' typdef struct __va_list {
534+ '' void *ap;
535+ '' } va_list;
536+
537+ s = symbStructBegin( NULL, NULL, NULL, "__va_list" , "__va_list" , FALSE , 0 , FALSE , 0 , 0 )
538+
539+ '' ap as any ptr
540+ symbAddField( s, "ap" , 0 , dTB(), typeAddrOf( FB_DATATYPE_VOID ), NULL, 0 , 0 , 0 )
541+
542+ '' end type
543+ symbStructEnd( s )
544+
545+ '' subtype mangle modifier
546+ '' don't clone struct, back patch the original only, see note in cMangleModifier()
547+ '' TODO: s = symbCloneSymbol( s )
548+ symbSetUdtValistType( s, FB_CVA_LIST_BUILTIN_ARM )
528549
529550 '' type cva_list as __va_list alias "__builtin_va_list"
530551 symbAddTypedef( pid, typeSetMangleDt( symbGetType( s ), FB_DATATYPE_VA_LIST ), s, symbGetLen( s ) )
0 commit comments