blob: 18f427802b713dbe4df5bb8d88f593733b6a3d60 [file] [log] [blame]
Adrian Prantl0ad737e2013-04-22 16:47:50 +00001// RUN: %clang_cc1 -std=c++11 -emit-llvm -g -o - %s | FileCheck %s
2// Test that we are emitting debug info and base types for scoped enums.
3
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -07004// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Color"
5// CHECK-SAME: baseType: ![[INT:[0-9]+]]
6// CHECK: ![[INT]] = !MDBasicType(name: "int"
Adrian Prantl0ad737e2013-04-22 16:47:50 +00007enum class Color { gray };
8
9void f(Color);
10void g() {
11 f(Color::gray);
12}
13
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070014// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Colour"
15// CHECK-SAME: baseType: ![[INT]]
Adrian Prantl0ad737e2013-04-22 16:47:50 +000016enum struct Colour { grey };
17
18void h(Colour);
19void i() {
20 h(Colour::grey);
21}
22
Pirama Arumuga Nainar3ea9e332015-04-08 08:57:32 -070023// CHECK: !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Couleur"
24// CHECK-SAME: baseType: ![[UCHAR:[0-9]+]]
25// CHECK: ![[UCHAR]] = !MDBasicType(name: "unsigned char"
Adrian Prantl0ad737e2013-04-22 16:47:50 +000026enum class Couleur : unsigned char { gris };
27
28void j(Couleur);
29void k() {
30 j(Couleur::gris);
31}