view gcc/testsuite/g++.dg/debug/dwarf2/enum2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line source

// PR debug/58150
// { dg-do compile }
// { dg-options "-std=c++11 -gdwarf-4 -dA -fno-merge-debug-strings" }
// { dg-final { scan-assembler-times "DIE\[^\n\r\]*DW_TAG_enumeration_type" 3 } }
// { dg-final { scan-assembler-times " DW_AT_enum_class" 3 } }
// { dg-final { scan-assembler-times " DW_AT_declaration" 1 } }
// { dg-final { scan-assembler-times "\"E1..\"\[^\n\]*DW_AT_name" 1 } }
// { dg-final { scan-assembler-times "\"E2..\"\[^\n\]*DW_AT_name" 1 } }
// { dg-final { scan-assembler-times "\"F1..\"\[^\n\]*DW_AT_name" 1 } }
// { dg-final { scan-assembler-times "\"F2..\"\[^\n\]*DW_AT_name" 1 } }

enum class E : int;
enum class F : int;
enum class G : int;
struct S { E s; };
struct T { G t; };
enum class E : int
{
  E1, E2
};
enum class F : int
{
  F1, F2
};

bool
foo (E e, F f, G g)
{
  return e == E::E1 && f == F::F1 && (int) g == 0;
}