brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 4bf3b91 Raw
50 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s2 3namespace dr2338 {4namespace A {5enum E { Zero, One };6E a(int x) { return static_cast<E>(x); }7// CHECK-LABEL: define{{.*}} i32 @_ZN6dr23381A1aEi8// CHECK: ret i32 %09 10E b(int x) { return (E)x; }11// CHECK-LABEL: define{{.*}} i32 @_ZN6dr23381A1bEi12// CHECK: ret i32 %013 14} // namespace A15namespace B {16enum E : bool { Zero, One };17E a(int x) { return static_cast<E>(x); }18// CHECK-LABEL: define{{.*}} zeroext i1 @_ZN6dr23381B1aEi19// CHECK: ret i1 %tobool20 21E b(int x) { return (E)x; }22// CHECK-LABEL: define{{.*}} zeroext i1 @_ZN6dr23381B1bEi23// CHECK: ret i1 %tobool24 25} // namespace B26namespace C {27enum class E { Zero, One };28E a(int x) { return static_cast<E>(x); }29// CHECK-LABEL: define{{.*}} i32 @_ZN6dr23381C1aEi30// CHECK: ret i32 %031 32E b(int x) { return (E)x; }33// CHECK-LABEL: define{{.*}} i32 @_ZN6dr23381C1bEi34// CHECK: ret i32 %035 36} // namespace C37namespace D {38enum class E : bool { Zero, One };39E a(int x) { return static_cast<E>(x); }40// CHECK-LABEL: define{{.*}} zeroext i1 @_ZN6dr23381D1aEi41// CHECK: ret i1 %tobool42 43E b(int x) { return (E)x; }44 45// CHECK-LABEL: define{{.*}} zeroext i1 @_ZN6dr23381D1bEi46// CHECK: ret i1 %tobool47 48} // namespace D49} // namespace dr233850