xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenCXX/scoped-enums-debug-info.cpp (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -std=c++11 -emit-llvm -g -o - %s | FileCheck %s
2*f4a2713aSLionel Sambuc // Test that we are emitting debug info and base types for scoped enums.
3*f4a2713aSLionel Sambuc 
4*f4a2713aSLionel Sambuc // CHECK: [ DW_TAG_enumeration_type ] [Color] {{.*}} [from int]
5*f4a2713aSLionel Sambuc enum class Color { gray };
6*f4a2713aSLionel Sambuc 
7*f4a2713aSLionel Sambuc void f(Color);
g()8*f4a2713aSLionel Sambuc void g() {
9*f4a2713aSLionel Sambuc   f(Color::gray);
10*f4a2713aSLionel Sambuc }
11*f4a2713aSLionel Sambuc 
12*f4a2713aSLionel Sambuc // CHECK: [ DW_TAG_enumeration_type ] [Colour] {{.*}} [from int]
13*f4a2713aSLionel Sambuc enum struct Colour { grey };
14*f4a2713aSLionel Sambuc 
15*f4a2713aSLionel Sambuc void h(Colour);
i()16*f4a2713aSLionel Sambuc void i() {
17*f4a2713aSLionel Sambuc   h(Colour::grey);
18*f4a2713aSLionel Sambuc }
19*f4a2713aSLionel Sambuc 
20*f4a2713aSLionel Sambuc // CHECK: [ DW_TAG_enumeration_type ] [Couleur] {{.*}} [from unsigned char]
21*f4a2713aSLionel Sambuc enum class Couleur : unsigned char { gris };
22*f4a2713aSLionel Sambuc 
23*f4a2713aSLionel Sambuc void j(Couleur);
k()24*f4a2713aSLionel Sambuc void k() {
25*f4a2713aSLionel Sambuc   j(Couleur::gris);
26*f4a2713aSLionel Sambuc }
27