diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/btf/btf-enum-small.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-enum-small.c b/gcc/testsuite/gcc.dg/debug/btf/btf-enum-small.c new file mode 100644 index 0000000..eb8a1bd --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-enum-small.c @@ -0,0 +1,28 @@ +/* Test BTF generation for small enums. */ + +/* { dg-do compile } */ +/* { dg-options "-O2 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-not "bte_value_lo32" } } */ +/* { dg-final { scan-assembler-not "bte_value_hi32" } } */ +/* { dg-final { scan-assembler-times "\[\t \]0x6000002\[\t \]+\[^\n\]*btt_info" 1 } } */ +/* { dg-final { scan-assembler-times " ENUM_CONST 'eSMALL' idx=0" 1 } } */ +/* { dg-final { scan-assembler-times " ENUM_CONST 'eSMALLY' idx=1" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"eSMALL.0\"\[\t \]+\[^\n\]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "ascii \"eSMALLY.0\"\[\t \]+\[^\n\]*btf_string" 1 } } */ +/* { dg-final { scan-assembler-times "bte_value" 2 } } */ + +enum smalled_enum +{ + eSMALL, + eSMALLY, +} __attribute__((mode(byte))); + +struct root_struct { + enum smalled_enum esmall; +}; + +enum smalled_enum +foo(struct root_struct *root) { + return root->esmall; +} |