@@ -61,23 +61,6 @@ enum ExtremumOperation {
61
61
Min ,
62
62
}
63
63
64
- trait EnumClone {
65
- fn clone ( & self ) -> Self ;
66
- }
67
-
68
- impl EnumClone for AtomicOrdering {
69
- fn clone ( & self ) -> Self {
70
- match * self {
71
- AtomicOrdering :: Unordered => AtomicOrdering :: Unordered ,
72
- AtomicOrdering :: Relaxed => AtomicOrdering :: Relaxed ,
73
- AtomicOrdering :: Acquire => AtomicOrdering :: Acquire ,
74
- AtomicOrdering :: Release => AtomicOrdering :: Release ,
75
- AtomicOrdering :: AcquireRelease => AtomicOrdering :: AcquireRelease ,
76
- AtomicOrdering :: SequentiallyConsistent => AtomicOrdering :: SequentiallyConsistent ,
77
- }
78
- }
79
- }
80
-
81
64
pub struct Builder < ' a : ' gcc , ' gcc , ' tcx > {
82
65
pub cx : & ' a CodegenCx < ' gcc , ' tcx > ,
83
66
pub block : Block < ' gcc > ,
@@ -102,9 +85,9 @@ impl<'a, 'gcc, 'tcx> Builder<'a, 'gcc, 'tcx> {
102
85
match order {
103
86
// TODO(antoyo): does this make sense?
104
87
AtomicOrdering :: AcquireRelease | AtomicOrdering :: Release => AtomicOrdering :: Acquire ,
105
- _ => order. clone ( ) ,
88
+ _ => order,
106
89
} ;
107
- let previous_value = self . atomic_load ( dst. get_type ( ) , dst, load_ordering. clone ( ) , Size :: from_bytes ( size) ) ;
90
+ let previous_value = self . atomic_load ( dst. get_type ( ) , dst, load_ordering, Size :: from_bytes ( size) ) ;
108
91
let previous_var = func. new_local ( None , previous_value. get_type ( ) , "previous_value" ) ;
109
92
let return_value = func. new_local ( None , previous_value. get_type ( ) , "return_value" ) ;
110
93
self . llbb ( ) . add_assignment ( None , previous_var, previous_value) ;
0 commit comments