/* Test BTF generation for enum-type bitfields

   It is allowed to have a bitfield type be an enum type.
   We expect the following types:

     [1] enum 'foo'(1U#B) size=4U#B
	 'BAR' value=0
	 'BAZ' value=1
	 'QUZ' value=2
	 'QUX' value=3
     [2] int 'unsigned int' size=4 offset=0 bits=32
     [3] struct 'bitt' size=4
         member 'f' type=1 bitfield_size=2 bit_offset=0
   */

/* { dg-do compile } */
/* { dg-options "-O0 -gbtf -dA" } */

/* Enum with 4 members.  */
/* { dg-final { scan-assembler-times "\[\t \]0x6000004\[\t \]+\[^\n\]*btt_info" 1 } } */
/* Struct with 1 bitfield member.  */
/* { dg-final { scan-assembler-times "\[\t \]0x84000001\[\t \]+\[^\n\]*btt_info" 1 } } */

/* Bitfield "f" points to type ID 1.  */
/* { dg-final { scan-assembler-times "\[\t \]0x1\[\t \]+\[^\n\]*btm_type" 1 } } */

enum foo
{
  BAR = 0,
  BAZ = 1,
  QUZ = 2,
  QUX = 3
};

struct bitt
{
  enum foo f : 2;
} bitty;
