|  | // This test checks that comparison operation | 
|  | // generated by #[derive(PartialOrd)] | 
|  | // doesn't contain jumps for C enums | 
|  |  | 
|  | //@ compile-flags: -Copt-level=3 | 
|  |  | 
|  | #![crate_type = "lib"] | 
|  |  | 
|  | #[repr(u32)] | 
|  | #[derive(Copy, Clone, Eq, PartialEq, PartialOrd)] | 
|  | pub enum Foo { | 
|  | Zero, | 
|  | One, | 
|  | Two, | 
|  | } | 
|  |  | 
|  | #[no_mangle] | 
|  | pub fn compare_less(a: Foo, b: Foo) -> bool { | 
|  | // CHECK-NOT: br {{.*}} | 
|  | a < b | 
|  | } | 
|  |  | 
|  | #[no_mangle] | 
|  | pub fn compare_le(a: Foo, b: Foo) -> bool { | 
|  | // CHECK-NOT: br {{.*}} | 
|  | a <= b | 
|  | } | 
|  |  | 
|  | #[no_mangle] | 
|  | pub fn compare_ge(a: Foo, b: Foo) -> bool { | 
|  | // CHECK-NOT: br {{.*}} | 
|  | a >= b | 
|  | } | 
|  |  | 
|  | #[no_mangle] | 
|  | pub fn compare_greater(a: Foo, b: Foo) -> bool { | 
|  | // CHECK-NOT: br {{.*}} | 
|  | a > b | 
|  | } |