From 441e09bc7022f61c94a9bcdfe16aef8040d72d44 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Mon, 16 Feb 2015 19:56:58 +0100 Subject: [PATCH 1/2] Add missing Copy trait for enums --- src/librustc_llvm/lib.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs index 878070e98e7..5f2aac6f3b9 100644 --- a/src/librustc_llvm/lib.rs +++ b/src/librustc_llvm/lib.rs @@ -436,50 +436,73 @@ pub enum DiagnosticKind { } // Opaque pointer types +#[derive(Copy)] pub enum Module_opaque {} pub type ModuleRef = *mut Module_opaque; +#[derive(Copy)] pub enum Context_opaque {} pub type ContextRef = *mut Context_opaque; +#[derive(Copy)] pub enum Type_opaque {} pub type TypeRef = *mut Type_opaque; +#[derive(Copy)] pub enum Value_opaque {} pub type ValueRef = *mut Value_opaque; +#[derive(Copy)] pub enum Metadata_opaque {} pub type MetadataRef = *mut Metadata_opaque; +#[derive(Copy)] pub enum BasicBlock_opaque {} pub type BasicBlockRef = *mut BasicBlock_opaque; +#[derive(Copy)] pub enum Builder_opaque {} pub type BuilderRef = *mut Builder_opaque; +#[derive(Copy)] pub enum ExecutionEngine_opaque {} pub type ExecutionEngineRef = *mut ExecutionEngine_opaque; +#[derive(Copy)] pub enum RustJITMemoryManager_opaque {} pub type RustJITMemoryManagerRef = *mut RustJITMemoryManager_opaque; +#[derive(Copy)] pub enum MemoryBuffer_opaque {} pub type MemoryBufferRef = *mut MemoryBuffer_opaque; +#[derive(Copy)] pub enum PassManager_opaque {} pub type PassManagerRef = *mut PassManager_opaque; +#[derive(Copy)] pub enum PassManagerBuilder_opaque {} pub type PassManagerBuilderRef = *mut PassManagerBuilder_opaque; +#[derive(Copy)] pub enum Use_opaque {} pub type UseRef = *mut Use_opaque; +#[derive(Copy)] pub enum TargetData_opaque {} pub type TargetDataRef = *mut TargetData_opaque; +#[derive(Copy)] pub enum ObjectFile_opaque {} pub type ObjectFileRef = *mut ObjectFile_opaque; +#[derive(Copy)] pub enum SectionIterator_opaque {} pub type SectionIteratorRef = *mut SectionIterator_opaque; +#[derive(Copy)] pub enum Pass_opaque {} pub type PassRef = *mut Pass_opaque; +#[derive(Copy)] pub enum TargetMachine_opaque {} pub type TargetMachineRef = *mut TargetMachine_opaque; +#[derive(Copy)] pub enum Archive_opaque {} pub type ArchiveRef = *mut Archive_opaque; +#[derive(Copy)] pub enum Twine_opaque {} pub type TwineRef = *mut Twine_opaque; +#[derive(Copy)] pub enum DiagnosticInfo_opaque {} pub type DiagnosticInfoRef = *mut DiagnosticInfo_opaque; +#[derive(Copy)] pub enum DebugLoc_opaque {} pub type DebugLocRef = *mut DebugLoc_opaque; +#[derive(Copy)] pub enum SMDiagnostic_opaque {} pub type SMDiagnosticRef = *mut SMDiagnostic_opaque; @@ -490,6 +513,7 @@ pub mod debuginfo { pub use self::DIDescriptorFlags::*; use super::{MetadataRef}; + #[derive(Copy)] pub enum DIBuilder_opaque {} pub type DIBuilderRef = *mut DIBuilder_opaque; @@ -2191,6 +2215,7 @@ pub fn get_param(llfn: ValueRef, index: c_uint) -> ValueRef { } } +#[derive(Copy)] pub enum RustString_opaque {} pub type RustStringRef = *mut RustString_opaque; type RustStringRepr = *mut RefCell>; From 318f262d68c3464ab0fdb83983d0c8c0bf6256b5 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Mon, 16 Feb 2015 20:03:44 +0100 Subject: [PATCH 2/2] Remove warning instead of implementing Copy trait --- src/librustc_llvm/lib.rs | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs index 5f2aac6f3b9..26af9c9622f 100644 --- a/src/librustc_llvm/lib.rs +++ b/src/librustc_llvm/lib.rs @@ -436,73 +436,73 @@ pub enum DiagnosticKind { } // Opaque pointer types -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Module_opaque {} pub type ModuleRef = *mut Module_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Context_opaque {} pub type ContextRef = *mut Context_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Type_opaque {} pub type TypeRef = *mut Type_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Value_opaque {} pub type ValueRef = *mut Value_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Metadata_opaque {} pub type MetadataRef = *mut Metadata_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum BasicBlock_opaque {} pub type BasicBlockRef = *mut BasicBlock_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Builder_opaque {} pub type BuilderRef = *mut Builder_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum ExecutionEngine_opaque {} pub type ExecutionEngineRef = *mut ExecutionEngine_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum RustJITMemoryManager_opaque {} pub type RustJITMemoryManagerRef = *mut RustJITMemoryManager_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum MemoryBuffer_opaque {} pub type MemoryBufferRef = *mut MemoryBuffer_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum PassManager_opaque {} pub type PassManagerRef = *mut PassManager_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum PassManagerBuilder_opaque {} pub type PassManagerBuilderRef = *mut PassManagerBuilder_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Use_opaque {} pub type UseRef = *mut Use_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum TargetData_opaque {} pub type TargetDataRef = *mut TargetData_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum ObjectFile_opaque {} pub type ObjectFileRef = *mut ObjectFile_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum SectionIterator_opaque {} pub type SectionIteratorRef = *mut SectionIterator_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Pass_opaque {} pub type PassRef = *mut Pass_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum TargetMachine_opaque {} pub type TargetMachineRef = *mut TargetMachine_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Archive_opaque {} pub type ArchiveRef = *mut Archive_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum Twine_opaque {} pub type TwineRef = *mut Twine_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum DiagnosticInfo_opaque {} pub type DiagnosticInfoRef = *mut DiagnosticInfo_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum DebugLoc_opaque {} pub type DebugLocRef = *mut DebugLoc_opaque; -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum SMDiagnostic_opaque {} pub type SMDiagnosticRef = *mut SMDiagnostic_opaque; @@ -513,7 +513,7 @@ pub mod debuginfo { pub use self::DIDescriptorFlags::*; use super::{MetadataRef}; - #[derive(Copy)] + #[allow(missing_copy_implementations)] pub enum DIBuilder_opaque {} pub type DIBuilderRef = *mut DIBuilder_opaque; @@ -2215,7 +2215,7 @@ pub fn get_param(llfn: ValueRef, index: c_uint) -> ValueRef { } } -#[derive(Copy)] +#[allow(missing_copy_implementations)] pub enum RustString_opaque {} pub type RustStringRef = *mut RustString_opaque; type RustStringRepr = *mut RefCell>;