1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s 2575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregor 3575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregor// PR9923 4575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregorenum class Color { red, blue, green }; 5575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregor 6575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregorvoid f(Color); 7575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregorvoid g() { 8575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregor f(Color::red); 9575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregor} 1059d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantl 1159d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantl// See that struct is handled equally. 1259d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantlenum struct Colour { grey }; 1359d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantl 1459d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantlvoid h(Colour); 1559d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantlvoid i() { 1659d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantl h(Colour::grey); 1759d6a71d681adfdc7d976492eeb3deae84e8f2e2Adrian Prantl} 18e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smith 19e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smithenum struct PR17103 : int { a = -1, b = 1 }; 20e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smithbool cmp(PR17103 x, PR17103 y) { return x < y; } 21e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smith 22e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smith// CHECK-LABEL: @_Z3cmp7PR17103S_( 23e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smith// CHECK-NOT: } 24e7eb0c4f6e728bb62c7d7304949b8a697153ba90Richard Smith// CHECK: icmp slt 25