(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
bpf/
core-builtin-fieldinfo-sign-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O0 -dA -gbtf -mco-re" } */
       3  
       4  enum {
       5    FIELD_SIGNEDNESS = 3,
       6  };
       7  
       8  enum Esig {
       9    SA = -1,
      10    SB,
      11    SC,
      12  };
      13  
      14  enum Eun {
      15    UA = 0,
      16    UB,
      17  };
      18  
      19  struct S {
      20    enum Esig sig : 3;
      21    enum Eun un : 3;
      22  };
      23  
      24  union U {
      25    int i;
      26    struct S s;
      27  };
      28  
      29  unsigned int foo (union U *u)
      30  {
      31    unsigned i   = __builtin_preserve_field_info (u->i, FIELD_SIGNEDNESS);
      32    unsigned sig = __builtin_preserve_field_info (u->s.sig, FIELD_SIGNEDNESS);
      33    unsigned un  = __builtin_preserve_field_info (u->s.un, FIELD_SIGNEDNESS);
      34  
      35    return i + sig + un;
      36  }
      37  
      38  /* { dg-final { scan-assembler-times "\[\t \]mov\[\t \]%r\[0-9\],1" 2 } } */
      39  /* { dg-final { scan-assembler-times "\[\t \]mov\[\t \]%r\[0-9\],0" 1 } } */
      40  
      41  /* { dg-final { scan-assembler-times "ascii \"0:0.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */
      42  /* { dg-final { scan-assembler-times "ascii \"0:1:0.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */
      43  /* { dg-final { scan-assembler-times "ascii \"0:1:1.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */
      44  
      45  /* { dg-final { scan-assembler-times "3\[\t \]+\[^\n\]*bpfcr_kind" 3 } } */