Building with "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON" causes many warnings related to -Wodr.
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:99:7: warning: type ‘struct LogTester’ violates the C++ One Definition Rule [-Wodr]
class LogTester
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkThreadLoggerTest.cxx:32:7: note: a different type is defined in another translation unit
class LogTester
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:124:20: note: the first difference of corresponding definitions is field ‘m_Logger’
itk::LoggerBase* m_Logger;
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkThreadLoggerTest.cxx:57:16: note: a field of same name but different type is defined in another translation unit
itk::Logger* m_Logger;
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/include/itkLoggerBase.h:42:24: note: type name ‘itk::LoggerBase’ should match type name ‘itk::Logger’
class ITKCommon_EXPORT LoggerBase:public Object
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/include/itkLogger.h:36:24: note: the incompatible type is defined here
class ITKCommon_EXPORT Logger:public LoggerBase
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkThreadLoggerTest.cxx:46:15: warning: ‘logStatic’ violates the C++ One Definition Rule [-Wodr]
static void logStatic(LogTester* tester)
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:113:15: note: type mismatch in parameter 1
static void logStatic(LogTester* tester)
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:99:7: note: type ‘struct LogTester’ itself violates the C++ One Definition Rule
class LogTester
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkThreadLoggerTest.cxx:32:7: note: the incompatible type is defined here
class LogTester
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:113:15: note: ‘logStatic’ was previously declared here
static void logStatic(LogTester* tester)
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkThreadLoggerTest.cxx:38:8: warning: ‘log’ violates the C++ One Definition Rule [-Wodr]
void log() {
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:105:8: note: implicit this pointer type mismatch
void log() {
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:99:7: note: type ‘struct LogTester’ itself violates the C++ One Definition Rule
class LogTester
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkThreadLoggerTest.cxx:32:7: note: the incompatible type is defined here
class LogTester
^
/home/johnsonhj/Dashboard/src/ITK/Modules/Core/Common/test/itkLoggerThreadWrapperTest.cxx:105:8: note: ‘log’ was previously declared here
void log() {
^
[Description of the bug]
Clean build.
Many real warnings being produced.
Always on Ubuntu 18.04
73188f4e7b1bb558ed0f1871ac119c926950e49d
Ununtu 18.04
Looks like a quick-fix could be to place each LogTester definition within an unnamed namespace, within its cxx file.
A more maintainable solution might be to move the LogTester definition into a header file, for example "itkLogTester.h".
My 2 cent
Was this fixed by a recent PR?
Attempting to reproduce (thanks for the detailed description @hjmjohnson), I run into issues from GDCM:
[1/1096] Linking CXX executable bin/ITKImageFilterBaseTestDriver
FAILED: bin/ITKImageFilterBaseTestDriver
: && /usr/bin/c++ -Wodr -Fno-strict-aliasing -mtune=native -march=corei7 -Wall -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -msse2 -O3 -DNDEBUG -flto -fno-fat-lto-objects Modules/Filtering/ImageFilterBase/test/CMakeFiles/ITKImageFilterBaseTestDriver.dir/ITKImageFilterBaseTestDriver.cxx.o Modules/Filtering/ImageFilterBase/test/CMakeFiles/ITKImageFilterBaseTestDriver.dir/itkNeighborhoodOperatorImageFilterTest.cxx.o Modules/Filtering/ImageFilterBase/test/CMakeFiles/ITKImageFilterBaseTestDriver.dir/itkImageToImageFilterTest.cxx.o Modules/Filtering/ImageFilterBase/test/CMakeFiles/ITKImageFilterBaseTestDriver.dir/itkVectorNeighborhoodOperatorImageFilterTest.cxx.o Modules/Filtering/ImageFilterBase/test/CMakeFiles/ITKImageFilterBaseTestDriver.dir/itkMaskNeighborhoodOperatorImageFilterTest.cxx.o Modules/Filtering/ImageFilterBase/test/CMakeFiles/ITKImageFilterBaseTestDriver.dir/itkCastImageFilterTest.cxx.o -o bin/ITKImageFilterBaseTestDriver lib/libITKCommon-5.0.a lib/libITKCommon-5.0.a lib/libITKStatistics-5.0.a lib/libITKTransform-5.0.a lib/libITKSpatialObjects-5.0.a lib/libITKPath-5.0.a lib/libITKTestKernel-5.0.a lib/libITKTestKernel-5.0.a lib/libitkNetlibSlatec-5.0.a lib/libITKIOBMP-5.0.a lib/libITKIOGDCM-5.0.a lib/libitkgdcmMSFF-5.0.a lib/libitkgdcmDICT-5.0.a lib/libitkgdcmIOD-5.0.a lib/libitkgdcmDSED-5.0.a lib/libitkgdcmCommon-5.0.a lib/libitkgdcmjpeg8-5.0.a lib/libitkgdcmjpeg12-5.0.a lib/libitkgdcmjpeg16-5.0.a lib/libitkgdcmopenjp2-5.0.a lib/libitkgdcmcharls-5.0.a lib/libitkgdcmuuid-5.0.a lib/libITKIOGIPL-5.0.a lib/libITKIOJPEG-5.0.a lib/libITKIOMeshBYU-5.0.a lib/libITKIOMeshFreeSurfer-5.0.a lib/libITKIOMeshGifti-5.0.a lib/libITKgiftiio-5.0.a lib/libITKEXPAT-5.0.a lib/libITKIOMeshOBJ-5.0.a lib/libITKIOMeshOFF-5.0.a lib/libITKIOMeshVTK-5.0.a lib/libITKIOMeshBase-5.0.a lib/libITKQuadEdgeMesh-5.0.a lib/libITKMesh-5.0.a lib/libITKIOMeta-5.0.a lib/libITKMetaIO-5.0.a lib/libITKIONIFTI-5.0.a lib/libITKTransform-5.0.a lib/libITKniftiio-5.0.a lib/libITKznz-5.0.a lib/libITKIONRRD-5.0.a lib/libITKNrrdIO-5.0.a lib/libITKIOPNG-5.0.a lib/libitkpng-5.0.a lib/libITKIOTIFF-5.0.a lib/libitktiff-5.0.a lib/libitkzlib-5.0.a lib/libitkjpeg-5.0.a lib/libITKIOVTK-5.0.a lib/libITKIOImageBase-5.0.a lib/libITKCommon-5.0.a lib/libitkdouble-conversion-5.0.a lib/libitksys-5.0.a lib/libITKVNLInstantiation-5.0.a lib/libitkvnl_algo-5.0.a lib/libitkvnl-5.0.a lib/libitkv3p_netlib-5.0.a lib/libitknetlib-5.0.a lib/libitkvcl-5.0.a -lm -lpthread -lm -ldl && :
/usr/include/c++/7/bits/stl_tree.h:677:16: note: type name ‘std::_Rb_tree<gdcm::DataElement, gdcm::DataElement, std::_Identity<gdcm::DataElement>, std::less<gdcm::DataElement>, std::allocator<gdcm::DataElement> >::_Rb_tree_impl<std::less<gdcm::DataElement>, true>’ should match type name ‘std::_Rb_tree<gdcm::DataElement, gdcm::DataElement, std::_Identity<gdcm::DataElement>, std::less<gdcm::DataElement>, std::allocator<gdcm::DataElement> >::_Rb_tree_impl<std::less<gdcm::DataElement>, false>’
struct _Rb_tree_impl
^
/usr/include/c++/7/bits/stl_set.h:122:40: note: type ‘struct _Rep_type’ should match type ‘struct _Rep_type’
key_compare, _Key_alloc_type> _Rep_type;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:55:19: warning: type ‘struct DataSet’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:55:19: note: a different type is defined in another translation unit
class GDCM_EXPORT DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:311:18: note: the first difference of corresponding definitions is field ‘DES’
DataElementSet DES;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:311:18: note: a field of same name but different type is defined in another translation unit
DataElementSet DES;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:59:33: note: type ‘struct DataElementSet’ should match type ‘struct DataElementSet’
typedef std::set<DataElement> DataElementSet;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmItem.h:45:19: warning: type ‘struct Item’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT Item : public DataElement
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmItem.h:45:19: note: a different type is defined in another translation unit
class GDCM_EXPORT Item : public DataElement
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmItem.h:312:11: note: the first difference of corresponding definitions is field ‘NestedDataSet’
DataSet NestedDataSet;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmItem.h:312:11: note: a field of same name but different type is defined in another translation unit
DataSet NestedDataSet;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:55:19: note: type ‘struct DataSet’ itself violates the C++ One Definition Rule
class GDCM_EXPORT DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFileMetaInformation.h:40:19: warning: type ‘struct FileMetaInformation’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT FileMetaInformation : public DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFileMetaInformation.h:40:19: note: a type with different bases is defined in another translation unit
class GDCM_EXPORT FileMetaInformation : public DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:33:19: warning: type ‘struct File’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT File : public Object
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:33:19: note: a different type is defined in another translation unit
class GDCM_EXPORT File : public Object
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:66:23: note: the first difference of corresponding definitions is field ‘Header’
FileMetaInformation Header;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:66:23: note: a field of same name but different type is defined in another translation unit
FileMetaInformation Header;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFileMetaInformation.h:40:19: note: type ‘struct FileMetaInformation’ itself violates the C++ One Definition Rule
class GDCM_EXPORT FileMetaInformation : public DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:39:7: warning: type ‘struct SmartPointer’ violates the C++ One Definition Rule [-Wodr]
class SmartPointer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:39:7: note: a different type is defined in another translation unit
class SmartPointer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:113:15: note: the first difference of corresponding definitions is field ‘Pointer’
ObjectType* Pointer;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:113:15: note: a field of same name but different type is defined in another translation unit
ObjectType* Pointer;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:33:19: note: type ‘struct File’ itself violates the C++ One Definition Rule
class GDCM_EXPORT File : public Object
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.h:38:19: warning: type ‘struct FileExplicitFilter’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT FileExplicitFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.h:38:19: note: a different type is defined in another translation unit
class GDCM_EXPORT FileExplicitFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.h:68:22: note: the first difference of corresponding definitions is field ‘F’
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.h:68:22: note: a field of same name but different type is defined in another translation unit
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:39:7: note: type ‘struct SmartPointer’ itself violates the C++ One Definition Rule
class SmartPointer
^
/usr/include/c++/7/bits/stl_tree.h:677:16: note: type name ‘std::_Rb_tree<gdcm::PrivateTag, std::pair<gdcm::PrivateTag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::PrivateTag const, gdcm::DictEntry> >, std::less<gdcm::PrivateTag>, std::allocator<std::pair<gdcm::PrivateTag const, gdcm::DictEntry> > >::_Rb_tree_impl<std::less<gdcm::PrivateTag>, true>’ should match type name ‘std::_Rb_tree<gdcm::PrivateTag, std::pair<gdcm::PrivateTag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::PrivateTag const, gdcm::DictEntry> >, std::less<gdcm::PrivateTag>, std::allocator<std::pair<gdcm::PrivateTag const, gdcm::DictEntry> > >::_Rb_tree_impl<std::less<gdcm::PrivateTag>, false>’
struct _Rb_tree_impl
^
/usr/include/c++/7/bits/stl_map.h:142:41: note: type ‘struct _Rep_type’ should match type ‘struct _Rep_type’
key_compare, _Pair_alloc_type> _Rep_type;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:216:19: warning: type ‘struct PrivateDict’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT PrivateDict
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:216:19: note: a different type is defined in another translation unit
class GDCM_EXPORT PrivateDict
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:326:16: note: the first difference of corresponding definitions is field ‘DictInternal’
MapDictEntry DictInternal;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:326:16: note: a field of same name but different type is defined in another translation unit
MapDictEntry DictInternal;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:218:43: note: type ‘struct MapDictEntry’ should match type ‘struct MapDictEntry’
typedef std::map<PrivateTag, DictEntry> MapDictEntry;
^
/usr/include/c++/7/bits/stl_tree.h:677:16: note: type name ‘std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::less<gdcm::Tag>, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_Rb_tree_impl<std::less<gdcm::Tag>, true>’ should match type name ‘std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::less<gdcm::Tag>, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_Rb_tree_impl<std::less<gdcm::Tag>, false>’
struct _Rb_tree_impl
^
/usr/include/c++/7/bits/stl_map.h:142:41: note: type ‘struct _Rep_type’ should match type ‘struct _Rep_type’
key_compare, _Pair_alloc_type> _Rep_type;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:44:19: warning: type ‘struct Dict’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT Dict
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:44:19: note: a different type is defined in another translation unit
class GDCM_EXPORT Dict
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:190:16: note: the first difference of corresponding definitions is field ‘DictInternal’
MapDictEntry DictInternal;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:190:16: note: a field of same name but different type is defined in another translation unit
MapDictEntry DictInternal;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:47:36: note: type ‘struct MapDictEntry’ should match type ‘struct MapDictEntry’
typedef std::map<Tag, DictEntry> MapDictEntry;
^
/usr/include/c++/7/bits/stl_tree.h:677:16: note: type name ‘std::_Rb_tree<gdcm::CSAHeaderDictEntry, gdcm::CSAHeaderDictEntry, std::_Identity<gdcm::CSAHeaderDictEntry>, std::less<gdcm::CSAHeaderDictEntry>, std::allocator<gdcm::CSAHeaderDictEntry> >::_Rb_tree_impl<std::less<gdcm::CSAHeaderDictEntry>, true>’ should match type name ‘std::_Rb_tree<gdcm::CSAHeaderDictEntry, gdcm::CSAHeaderDictEntry, std::_Identity<gdcm::CSAHeaderDictEntry>, std::less<gdcm::CSAHeaderDictEntry>, std::allocator<gdcm::CSAHeaderDictEntry> >::_Rb_tree_impl<std::less<gdcm::CSAHeaderDictEntry>, false>’
struct _Rb_tree_impl
^
/usr/include/c++/7/bits/stl_set.h:122:40: note: type ‘struct _Rep_type’ should match type ‘struct _Rep_type’
key_compare, _Key_alloc_type> _Rep_type;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmCSAHeaderDict.h:34:19: warning: type ‘struct CSAHeaderDict’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT CSAHeaderDict
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmCSAHeaderDict.h:34:19: note: a different type is defined in another translation unit
class GDCM_EXPORT CSAHeaderDict
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmCSAHeaderDict.h:79:25: note: the first difference of corresponding definitions is field ‘CSAHeaderDictInternal’
MapCSAHeaderDictEntry CSAHeaderDictInternal;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmCSAHeaderDict.h:79:25: note: a field of same name but different type is defined in another translation unit
MapCSAHeaderDictEntry CSAHeaderDictInternal;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmCSAHeaderDict.h:37:40: note: type ‘struct MapCSAHeaderDictEntry’ should match type ‘struct MapCSAHeaderDictEntry’
typedef std::set<CSAHeaderDictEntry> MapCSAHeaderDictEntry;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:28:19: warning: type ‘struct Dicts’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT Dicts
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:28:19: note: a different type is defined in another translation unit
class GDCM_EXPORT Dicts
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:72:8: note: the first difference of corresponding definitions is field ‘PublicDict’
Dict PublicDict;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:72:8: note: a field of same name but different type is defined in another translation unit
Dict PublicDict;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:44:19: note: type ‘struct Dict’ itself violates the C++ One Definition Rule
class GDCM_EXPORT Dict
^
/usr/include/c++/7/bits/stl_tree.h:444:11: note: type ‘struct _Rb_tree’ itself violates the C++ One Definition Rule
class _Rb_tree
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.h:53:19: warning: type ‘struct Reader’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT Reader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.h:53:19: note: a different type is defined in another translation unit
class GDCM_EXPORT Reader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.h:103:22: note: the first difference of corresponding definitions is field ‘F’
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.h:103:22: note: a field of same name but different type is defined in another translation unit
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:39:7: note: type ‘struct SmartPointer’ itself violates the C++ One Definition Rule
class SmartPointer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapReader.h:40:19: warning: type ‘struct PixmapReader’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT PixmapReader : public Reader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapReader.h:40:19: note: a type with different bases is defined in another translation unit
class GDCM_EXPORT PixmapReader : public Reader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:33:19: warning: type ‘struct ImageReader’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT ImageReader : public PixmapReader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:33:19: note: a type with different bases is defined in another translation unit
class GDCM_EXPORT ImageReader : public PixmapReader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.h:48:19: warning: type ‘struct Writer’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT Writer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.h:48:19: note: a different type is defined in another translation unit
class GDCM_EXPORT Writer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.h:90:22: note: the first difference of corresponding definitions is field ‘F’
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.h:90:22: note: a field of same name but different type is defined in another translation unit
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:39:7: note: type ‘struct SmartPointer’ itself violates the C++ One Definition Rule
class SmartPointer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapWriter.h:36:19: warning: type ‘struct PixmapWriter’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT PixmapWriter : public Writer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapWriter.h:36:19: note: a type with different bases is defined in another translation unit
class GDCM_EXPORT PixmapWriter : public Writer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:27:19: warning: type ‘struct ImageWriter’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT ImageWriter : public PixmapWriter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:27:19: note: a type with different bases is defined in another translation unit
class GDCM_EXPORT ImageWriter : public PixmapWriter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:29:19: warning: type ‘struct StringFilter’ violates the C++ One Definition Rule [-Wodr]
class GDCM_EXPORT StringFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:29:19: note: a different type is defined in another translation unit
class GDCM_EXPORT StringFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:76:22: note: the first difference of corresponding definitions is field ‘F’
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:76:22: note: a field of same name but different type is defined in another translation unit
SmartPointer<File> F;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/Common/gdcmSmartPointer.h:39:7: note: type ‘struct SmartPointer’ itself violates the C++ One Definition Rule
class SmartPointer
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:783:8: warning: type ‘struct jpeg_memory_mgr’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:783:8: note: a different type is defined in another translation unit
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:789:3: note: the first difference of corresponding definitions is field ‘alloc_sarray’
JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id,
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:789:3: note: a field of same name but different type is defined in another translation unit
JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id,
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:430:8: warning: type ‘struct jpeg_decompress_struct’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_decompress_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:430:8: note: a different type is defined in another translation unit
struct jpeg_decompress_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:431:3: note: the first difference of corresponding definitions is field ‘mem’
jpeg_common_fields; /* Fields shared with jpeg_compress_struct */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:431:3: note: a field of same name but different type is defined in another translation unit
jpeg_common_fields; /* Fields shared with jpeg_compress_struct */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:783:8: note: type ‘struct jpeg_memory_mgr’ itself violates the C++ One Definition Rule
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:783:8: note: the incompatible type is defined here
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:285:8: warning: type ‘struct jpeg_compress_struct’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_compress_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:285:8: note: a different type is defined in another translation unit
struct jpeg_compress_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:286:3: note: the first difference of corresponding definitions is field ‘mem’
jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:286:3: note: a field of same name but different type is defined in another translation unit
jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:783:8: note: type ‘struct jpeg_memory_mgr’ itself violates the C++ One Definition Rule
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:783:8: note: the incompatible type is defined here
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:732:8: warning: type ‘struct jpeg_destination_mgr’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_destination_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:732:8: note: a different type is defined in another translation unit
struct jpeg_destination_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:736:3: note: the first difference of corresponding definitions is field ‘init_destination’
JMETHOD(void, init_destination, (j_compress_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:736:3: note: a field of same name but different type is defined in another translation unit
JMETHOD(void, init_destination, (j_compress_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:732:8: note: type mismatch in parameter 1
struct jpeg_destination_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:279:39: note: type ‘struct jpeg_compress_struct *’ should match type ‘struct jpeg_compress_struct *’
typedef struct jpeg_compress_struct * j_compress_ptr;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:279:39: note: the incompatible type is defined here
typedef struct jpeg_compress_struct * j_compress_ptr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:272:7: warning: type ‘struct JPEGInternals’ violates the C++ One Definition Rule [-Wodr]
class JPEGInternals
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:272:7: note: a different type is defined in another translation unit
class JPEGInternals
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:276:26: note: the first difference of corresponding definitions is field ‘cinfo’
jpeg_decompress_struct cinfo;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:276:26: note: a field of same name but different type is defined in another translation unit
jpeg_decompress_struct cinfo;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:430:8: note: type ‘struct jpeg_decompress_struct’ itself violates the C++ One Definition Rule
struct jpeg_decompress_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:430:8: note: the incompatible type is defined here
struct jpeg_decompress_struct {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:1024:3: warning: type ‘struct my_destination_mgr’ violates the C++ One Definition Rule [-Wodr]
} my_destination_mgr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:1024:3: note: a different type is defined in another translation unit
} my_destination_mgr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:1020:31: note: the first difference of corresponding definitions is field ‘pub’
struct jpeg_destination_mgr pub; /* public fields */
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:1020:31: note: a field of same name but different type is defined in another translation unit
struct jpeg_destination_mgr pub; /* public fields */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:732:8: note: type ‘struct jpeg_destination_mgr’ itself violates the C++ One Definition Rule
struct jpeg_destination_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/16/jpeglib.h:732:8: note: the incompatible type is defined here
struct jpeg_destination_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:270:8: warning: type ‘struct jpeg_common_struct’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_common_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:270:8: note: a different type is defined in another translation unit
struct jpeg_common_struct {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:271:3: note: the first difference of corresponding definitions is field ‘mem’
jpeg_common_fields; /* Fields common to both master struct types */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:271:3: note: a field of same name but different type is defined in another translation unit
jpeg_common_fields; /* Fields common to both master struct types */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:783:8: note: type ‘struct jpeg_memory_mgr’ itself violates the C++ One Definition Rule
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:783:8: note: the incompatible type is defined here
struct jpeg_memory_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:720:8: warning: type ‘struct jpeg_progress_mgr’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_progress_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:720:8: note: a different type is defined in another translation unit
struct jpeg_progress_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:721:3: note: the first difference of corresponding definitions is field ‘progress_monitor’
JMETHOD(void, progress_monitor, (j_common_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:721:3: note: a field of same name but different type is defined in another translation unit
JMETHOD(void, progress_monitor, (j_common_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:720:8: note: type mismatch in parameter 1
struct jpeg_progress_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:278:37: note: type ‘struct jpeg_common_struct *’ should match type ‘struct jpeg_common_struct *’
typedef struct jpeg_common_struct * j_common_ptr;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:278:37: note: the incompatible type is defined here
typedef struct jpeg_common_struct * j_common_ptr;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:744:8: warning: type ‘struct jpeg_source_mgr’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_source_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:744:8: note: a different type is defined in another translation unit
struct jpeg_source_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:748:3: note: the first difference of corresponding definitions is field ‘init_source’
JMETHOD(void, init_source, (j_decompress_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:748:3: note: a field of same name but different type is defined in another translation unit
JMETHOD(void, init_source, (j_decompress_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:744:8: note: type mismatch in parameter 1
struct jpeg_source_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:280:41: note: type ‘struct jpeg_decompress_struct *’ should match type ‘struct jpeg_decompress_struct *’
typedef struct jpeg_decompress_struct * j_decompress_ptr;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:280:41: note: the incompatible type is defined here
typedef struct jpeg_decompress_struct * j_decompress_ptr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:48:3: warning: type ‘struct my_source_mgr’ violates the C++ One Definition Rule [-Wodr]
} my_source_mgr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:48:3: note: a different type is defined in another translation unit
} my_source_mgr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:43:26: note: the first difference of corresponding definitions is field ‘pub’
struct jpeg_source_mgr pub; /* public fields */
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmJPEGBITSCodec.cxx:43:26: note: a field of same name but different type is defined in another translation unit
struct jpeg_source_mgr pub; /* public fields */
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:744:8: note: type ‘struct jpeg_source_mgr’ itself violates the C++ One Definition Rule
struct jpeg_source_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/8/jpeglib.h:744:8: note: the incompatible type is defined here
struct jpeg_source_mgr {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDefaultDicts.cxx:37:3: warning: type ‘struct DICT_ENTRY’ violates the C++ One Definition Rule [-Wodr]
} DICT_ENTRY;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmPrivateDefaultDicts.cxx:37:3: note: a different type is defined in another translation unit
} DICT_ENTRY;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDefaultDicts.cxx:32:14: note: the first difference of corresponding definitions is field ‘vr’
VR::VRType vr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmPrivateDefaultDicts.cxx:32:15: note: a field with different name is defined in another translation unit
const char *owner;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:662:8: warning: type ‘struct jpeg_error_mgr’ violates the C++ One Definition Rule [-Wodr]
struct jpeg_error_mgr {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/JPEG/src/itkjpeg/jpeglib.h:680:8: note: a different type is defined in another translation unit
struct jpeg_error_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:664:3: note: the first difference of corresponding definitions is field ‘error_exit’
JMETHOD(void, error_exit, (j_common_ptr cinfo));
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/JPEG/src/itkjpeg/jpeglib.h:682:3: note: a field of same name but different type is defined in another translation unit
JMETHOD(void, error_exit, (j_common_ptr cinfo));
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:662:8: note: type mismatch in parameter 1
struct jpeg_error_mgr {
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:278:37: note: type ‘struct jpeg_common_struct *’ should match type ‘struct jpeg_common_struct *’
typedef struct jpeg_common_struct * j_common_ptr;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/JPEG/src/itkjpeg/jpeglib.h:268:37: note: the incompatible type is defined here
typedef struct jpeg_common_struct * j_common_ptr;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:186:3: warning: type ‘struct jpeg_component_info’ violates the C++ One Definition Rule [-Wodr]
} jpeg_component_info;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/JPEG/src/itkjpeg/jpeglib.h:186:3: note: a different type is defined in another translation unit
} jpeg_component_info;
^
Modules/ThirdParty/GDCM/src/gdcm/Utilities/gdcmjpeg/12/jpeglib.h:144:14: note: the first difference of corresponding definitions is field ‘width_in_data_units’
JDIMENSION width_in_data_units;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/JPEG/src/itkjpeg/jpeglib.h:146:14: note: a field with different name is defined in another translation unit
JDIMENSION width_in_blocks;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:30:3: warning: ‘__comp_ctor ’ violates the C++ One Definition Rule [-Wodr]
ImageWriter();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.cxx:29:1: note: implicit this pointer type mismatch
ImageWriter::ImageWriter()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:27:19: note: type ‘struct ImageWriter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageWriter : public PixmapWriter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.cxx:29:1: note: ‘__comp_ctor ’ was previously declared here
ImageWriter::ImageWriter()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.h:59:10: warning: ‘GetDicts’ violates the C++ One Definition Rule [-Wodr]
Dicts &GetDicts();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.cxx:177:8: note: return value type mismatch
Dicts &Global::GetDicts()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:28:19: note: type ‘struct Dicts’ itself violates the C++ One Definition Rule
class GDCM_EXPORT Dicts
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.cxx:177:8: note: ‘GetDicts’ was previously declared here
Dicts &Global::GetDicts()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.cxx:177:8: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:49:15: warning: ‘GetPublicDict’ violates the C++ One Definition Rule [-Wodr]
const Dict &GetPublicDict() const;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.cxx:144:13: note: ‘GetPublicDict’ was previously declared here
const Dict &Dicts::GetPublicDict() const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.cxx:144:13: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:58:15: warning: ‘FromString’ violates the C++ One Definition Rule [-Wodr]
std::string FromString(const Tag&t, const char * value, size_t len);
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:505:13: note: implicit this pointer type mismatch
std::string StringFilter::FromString(const Tag&t, const char * value, size_t len)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:29:19: note: type ‘struct StringFilter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT StringFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:505:13: note: ‘FromString’ was previously declared here
std::string StringFilter::FromString(const Tag&t, const char * value, size_t len)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapWriter.h:51:16: warning: ‘SetImage’ violates the C++ One Definition Rule [-Wodr]
virtual void SetImage(Pixmap const &img);
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapWriter.cxx:826:6: note: implicit this pointer type mismatch
void PixmapWriter::SetImage(Pixmap const &img)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapWriter.h:36:19: note: type ‘struct PixmapWriter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT PixmapWriter : public Writer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmPixmapWriter.cxx:826:6: note: ‘SetImage’ was previously declared here
void PixmapWriter::SetImage(Pixmap const &img)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.h:57:8: warning: ‘Change’ violates the C++ One Definition Rule [-Wodr]
bool Change();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.cxx:192:6: note: implicit this pointer type mismatch
bool FileExplicitFilter::Change()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.h:38:19: note: type ‘struct FileExplicitFilter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT FileExplicitFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmFileExplicitFilter.cxx:192:6: note: ‘Change’ was previously declared here
bool FileExplicitFilter::Change()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.h:58:8: warning: ‘SetFileName’ violates the C++ One Definition Rule [-Wodr]
void SetFileName(const char *filename_native);
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.cxx:165:6: note: implicit this pointer type mismatch
void Writer::SetFileName(const char *filename)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.h:48:19: note: type ‘struct Writer’ itself violates the C++ One Definition Rule
class GDCM_EXPORT Writer
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmWriter.cxx:165:6: note: ‘SetFileName’ was previously declared here
void Writer::SetFileName(const char *filename)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:41:8: warning: ‘Write’ violates the C++ One Definition Rule [-Wodr]
bool Write(); // Execute()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.cxx:76:6: note: implicit this pointer type mismatch
bool ImageWriter::Write()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:27:19: note: type ‘struct ImageWriter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageWriter : public PixmapWriter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.cxx:76:6: note: ‘Write’ was previously declared here
bool ImageWriter::Write()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:31:3: warning: ‘__comp_dtor ’ violates the C++ One Definition Rule [-Wodr]
~ImageWriter();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.cxx:34:1: note: implicit this pointer type mismatch
ImageWriter::~ImageWriter()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.h:27:19: note: type ‘struct ImageWriter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageWriter : public PixmapWriter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageWriter.cxx:34:1: note: ‘__comp_dtor ’ was previously declared here
ImageWriter::~ImageWriter()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmMediaStorage.h:180:8: warning: ‘SetFromFile’ violates the C++ One Definition Rule [-Wodr]
bool SetFromFile(File const &file);
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmMediaStorage.cxx:532:6: note: ‘SetFromFile’ was previously declared here
bool MediaStorage::SetFromFile(File const &file)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmMediaStorage.cxx:532:6: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:32:3: warning: ‘__comp_ctor ’ violates the C++ One Definition Rule [-Wodr]
StringFilter();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:27:1: note: implicit this pointer type mismatch
StringFilter::StringFilter():F(new File)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:29:19: note: type ‘struct StringFilter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT StringFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:27:1: note: ‘__comp_ctor ’ was previously declared here
StringFilter::StringFilter():F(new File)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmDataSetHelper.h:37:13: warning: ‘ComputeVR’ violates the C++ One Definition Rule [-Wodr]
static VR ComputeVR(File const & file, DataSet const &ds, const Tag& tag);
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmDataSetHelper.cxx:79:4: note: ‘ComputeVR’ was previously declared here
VR DataSetHelper::ComputeVR(File const &file, DataSet const &ds, const Tag& tag)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmDataSetHelper.cxx:79:4: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:47:15: warning: ‘ToString’ violates the C++ One Definition Rule [-Wodr]
std::string ToString(const Tag& t) const;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:41:13: note: ‘ToString’ was previously declared here
std::string StringFilter::ToString(const Tag& t) const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:33:3: warning: ‘__comp_dtor ’ violates the C++ One Definition Rule [-Wodr]
~StringFilter();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:31:1: note: implicit this pointer type mismatch
StringFilter::~StringFilter()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.h:29:19: note: type ‘struct StringFilter’ itself violates the C++ One Definition Rule
class GDCM_EXPORT StringFilter
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmStringFilter.cxx:31:1: note: ‘__comp_dtor ’ was previously declared here
StringFilter::~StringFilter()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:49:10: warning: ‘GetImage’ violates the C++ One Definition Rule [-Wodr]
Image& GetImage();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:42:8: note: implicit this pointer type mismatch
Image& ImageReader::GetImage()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:33:19: note: type ‘struct ImageReader’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageReader : public PixmapReader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:42:8: note: ‘GetImage’ was previously declared here
Image& ImageReader::GetImage()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:36:3: warning: ‘__comp_ctor ’ violates the C++ One Definition Rule [-Wodr]
ImageReader();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:29:1: note: implicit this pointer type mismatch
ImageReader::ImageReader()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:33:19: note: type ‘struct ImageReader’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageReader : public PixmapReader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:29:1: note: ‘__comp_ctor ’ was previously declared here
ImageReader::ImageReader()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.h:64:8: warning: ‘SetFileName’ violates the C++ One Definition Rule [-Wodr]
void SetFileName(const char *filename_native);
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.cxx:826:6: note: implicit this pointer type mismatch
void Reader::SetFileName(const char *filename)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.h:53:19: note: type ‘struct Reader’ itself violates the C++ One Definition Rule
class GDCM_EXPORT Reader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmReader.cxx:826:6: note: ‘SetFileName’ was previously declared here
void Reader::SetFileName(const char *filename)
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:43:16: warning: ‘Read’ violates the C++ One Definition Rule [-Wodr]
virtual bool Read();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:52:6: note: implicit this pointer type mismatch
bool ImageReader::Read()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:33:19: note: type ‘struct ImageReader’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageReader : public PixmapReader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:52:6: note: ‘Read’ was previously declared here
bool ImageReader::Read()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:37:11: warning: ‘__comp_dtor ’ violates the C++ One Definition Rule [-Wodr]
virtual ~ImageReader();//needs to be virtual to ensure lack of memory leaks
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:34:1: note: implicit this pointer type mismatch
ImageReader::~ImageReader()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.h:33:19: note: type ‘struct ImageReader’ itself violates the C++ One Definition Rule
class GDCM_EXPORT ImageReader : public PixmapReader
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageReader.cxx:34:1: note: ‘__comp_dtor ’ was previously declared here
ImageReader::~ImageReader()
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:284:22: warning: ‘GetDEEnd’ violates the C++ One Definition Rule [-Wodr]
const DataElement& GetDEEnd() const;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.cxx:21:20: note: ‘GetDEEnd’ was previously declared here
const DataElement& DataSet::GetDEEnd() const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.cxx:21:20: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.h:58:16: warning: ‘GetDicts’ violates the C++ One Definition Rule [-Wodr]
Dicts const &GetDicts() const;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.cxx:171:14: note: ‘GetDicts’ was previously declared here
Dicts const &Global::GetDicts() const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmGlobal.cxx:171:14: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.h:40:20: warning: ‘GetDictEntry’ violates the C++ One Definition Rule [-Wodr]
const DictEntry &GetDictEntry(const Tag& tag, const char *owner = NULL) const;
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.cxx:40:18: note: ‘GetDictEntry’ was previously declared here
const DictEntry &Dicts::GetDictEntry(const Tag& tag, const char *owner) const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDicts.cxx:40:18: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:36:3: warning: ‘__comp_ctor ’ violates the C++ One Definition Rule [-Wodr]
File();
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.cxx:20:1: note: implicit this pointer type mismatch
File::File() {}
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.h:33:19: note: type ‘struct File’ itself violates the C++ One Definition Rule
class GDCM_EXPORT File : public Object
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.cxx:20:1: note: ‘__comp_ctor ’ was previously declared here
File::File() {}
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmFile.cxx:20:1: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:150:8: warning: ‘Replace’ violates the C++ One Definition Rule [-Wodr]
void Replace(const DataElement& de) {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:150:8: note: implicit this pointer type mismatch
void Replace(const DataElement& de) {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:55:19: note: type ‘struct DataSet’ itself violates the C++ One Definition Rule
class GDCM_EXPORT DataSet
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:150:8: note: ‘Replace’ was previously declared here
void Replace(const DataElement& de) {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:150:8: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:72:20: warning: ‘GetDictEntry’ violates the C++ One Definition Rule [-Wodr]
const DictEntry &GetDictEntry(const Tag &tag) const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:72:20: note: ‘GetDictEntry’ was previously declared here
const DictEntry &GetDictEntry(const Tag &tag) const
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/gdcmDict.h:72:20: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:188:22: warning: ‘GetDataElement’ violates the C++ One Definition Rule [-Wodr]
const DataElement& GetDataElement(const Tag &t) const {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:188:22: note: ‘GetDataElement’ was previously declared here
const DataElement& GetDataElement(const Tag &t) const {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:188:22: note: code may be misoptimized unless -fno-strict-aliasing is used
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:207:8: warning: ‘FindDataElement’ violates the C++ One Definition Rule [-Wodr]
bool FindDataElement(const Tag &t) const {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:207:8: note: ‘FindDataElement’ was previously declared here
bool FindDataElement(const Tag &t) const {
^
/home/kitware/mattm/ITK2/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmDataSet.h:207:8: note: code may be misoptimized unless -fno-strict-aliasing is used
CC: @malaterre
@thewtex Your compilation log does not make sense at all (at least to me). Are you sure you started from a clean build tree. It feels like you have multiple copies of GDCM being compiled with different set of flags.
@malaterre , yes, it is not obvious where the issue lies. I did a clean build as @hjmjohnson notes in the report with CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON. This results in link time optimization:
https://gcc.gnu.org/wiki/LinkTimeOptimization
which is uncovering some issues.
The original issue was probably resolved by 0afe10e51be135013ece61bff182826bf799313f.
For GDCM, most warnings do look odd but some are legitimate. For example, jpeg_memory_mgr seem to be generated with different types, and DICT_ENTRY is defined twice.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This seems to have been fixed, at least on Windows.