blob: fdec74332883444cdab84677eed30a4bb5cab4a8 [file] [log] [blame]
/* CTF forward type is generated for forward declarations of types in C.
Check that the ctf-kind of CTF_K_FOWARD type is CTF_K_STRUCT or CTF_K_UNION.
For forward types, the compiler encodes the CTF kind in the ctt_type field.
CTF_K_FORWARD is used as the CTF type as usual in the ctt_info. */
/* Note - A value of 6 in "ctt_size or ctt_type" appears twice in this
testcase. This might be misconstrued as 2 CTK_K_FORWARD records of struct
type. The second assembler tag is due to a ref type in a CVR CTF record.
TBD - perhaps a more robust string pattern is needed. */
/* { dg-do compile ) */
/* { dg-options "-O0 -gctf -dA" } */
/* { dg-final { scan-assembler-times "\[\t \]0x26000000\[\t \]+\[^\n\]*ctt_info" 2 } } */
/* { dg-final { scan-assembler-times "\[\t \]0x6\[\t \]+\[^\n\]*ctt_size or ctt_type" 2 } } */
/* { dg-final { scan-assembler-times "\[\t \]0x7\[\t \]+\[^\n\]*ctt_size or ctt_type" 2 } } */
typedef struct __locale_struct
{
struct __locale_data *__locales[13]; /* forward struct type. */
const int *__ctype_toupper;
const char *__names[13];
} *__locale_t;
typedef __locale_t locale_t;
locale_t loc;
typedef struct __inter_struct
{
union __inter_data * __inters[13]; /* forward union type. */
const int * __ctype_kind;
} * __inter_t;
typedef __inter_t inter_t;
inter_t inter;