From 2665c39a0de7f3b8a69a3ef2b560ba467427cca6 Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Wed, 17 Apr 2013 22:01:03 +0400 Subject: [PATCH] Fix build warnings from gcc 4.8 --- 3rdparty/libjasper/CMakeLists.txt | 3 +- cmake/OpenCVDetectCXXCompiler.cmake | 2 +- modules/flann/include/opencv2/flann/ground_truth.h | 1 - modules/highgui/src/grfmt_jpeg.cpp | 5 ++ modules/highgui/src/grfmt_png.cpp | 5 ++ modules/imgproc/src/floodfill.cpp | 2 - modules/imgproc/src/imgwarp.cpp | 2 - modules/legacy/src/blobtrackgenyml.cpp | 2 +- modules/legacy/src/kdtree.cpp | 6 +-- modules/ocl/src/brute_force_matcher.cpp | 56 +++++++++++----------- modules/ocl/src/gemm.cpp | 2 +- modules/ocl/src/haar.cpp | 3 +- 12 files changed, 48 insertions(+), 41 deletions(-) diff --git a/3rdparty/libjasper/CMakeLists.txt b/3rdparty/libjasper/CMakeLists.txt index 42855e2..97919be 100644 --- a/3rdparty/libjasper/CMakeLists.txt +++ b/3rdparty/libjasper/CMakeLists.txt @@ -23,7 +23,8 @@ if(WIN32 AND NOT MINGW) add_definitions(-DJAS_WIN_MSVC_BUILD) endif(WIN32 AND NOT MINGW) -ocv_warnings_disable(CMAKE_C_FLAGS -Wno-implicit-function-declaration -Wno-uninitialized -Wmissing-prototypes -Wmissing-declarations -Wunused -Wshadow -Wsign-compare) +ocv_warnings_disable(CMAKE_C_FLAGS -Wno-implicit-function-declaration -Wno-uninitialized -Wmissing-prototypes + -Wno-unused-but-set-parameter -Wmissing-declarations -Wunused -Wshadow -Wsign-compare) ocv_warnings_disable(CMAKE_C_FLAGS -Wunused-parameter) # clang ocv_warnings_disable(CMAKE_C_FLAGS /wd4013 /wd4018 /wd4101 /wd4244 /wd4267 /wd4715) # vs2005 diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake index 9b841da..7efcba7 100644 --- a/cmake/OpenCVDetectCXXCompiler.cmake +++ b/cmake/OpenCVDetectCXXCompiler.cmake @@ -101,7 +101,7 @@ endif() if(MSVC64 OR MINGW64) set(X86_64 1) -elseif(MSVC AND NOT CMAKE_CROSSCOMPILING) +elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING)) set(X86 1) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") set(X86_64 1) diff --git a/modules/flann/include/opencv2/flann/ground_truth.h b/modules/flann/include/opencv2/flann/ground_truth.h index 69d978b..fd8f3ae 100644 --- a/modules/flann/include/opencv2/flann/ground_truth.h +++ b/modules/flann/include/opencv2/flann/ground_truth.h @@ -42,7 +42,6 @@ template void find_nearest(const Matrix& dataset, typename Distance::ElementType* query, int* matches, int nn, int skip = 0, Distance distance = Distance()) { - typedef typename Distance::ElementType ElementType; typedef typename Distance::ResultType DistanceType; int n = nn + skip; diff --git a/modules/highgui/src/grfmt_jpeg.cpp b/modules/highgui/src/grfmt_jpeg.cpp index 3dedf44..bd21e2c 100644 --- a/modules/highgui/src/grfmt_jpeg.cpp +++ b/modules/highgui/src/grfmt_jpeg.cpp @@ -52,6 +52,11 @@ #include #include +// the following defines are a hack to avoid multiple problems with frame ponter handling and setjmp +// see http://gcc.gnu.org/ml/gcc/2011-10/msg00324.html for some details +#define mingw_getsp(...) 0 +#define __builtin_frame_address(...) 0 + #ifdef WIN32 #define XMD_H // prevent redefinition of INT32 diff --git a/modules/highgui/src/grfmt_png.cpp b/modules/highgui/src/grfmt_png.cpp index 196b1e6..9bb5d32 100644 --- a/modules/highgui/src/grfmt_png.cpp +++ b/modules/highgui/src/grfmt_png.cpp @@ -73,6 +73,11 @@ #pragma warning( disable: 4611 ) #endif +// the following defines are a hack to avoid multiple problems with frame ponter handling and setjmp +// see http://gcc.gnu.org/ml/gcc/2011-10/msg00324.html for some details +#define mingw_getsp(...) 0 +#define __builtin_frame_address(...) 0 + namespace cv { diff --git a/modules/imgproc/src/floodfill.cpp b/modules/imgproc/src/floodfill.cpp index d935113..ada6dcc 100644 --- a/modules/imgproc/src/floodfill.cpp +++ b/modules/imgproc/src/floodfill.cpp @@ -93,7 +93,6 @@ icvFloodFill_CnIR( uchar* pImage, int step, CvSize roi, CvPoint seed, _Tp newVal, CvConnectedComp* region, int flags, std::vector* buffer ) { - typedef typename cv::DataType<_Tp>::channel_type _CTp; _Tp* img = (_Tp*)(pImage + step * seed.y); int i, L, R; int area = 0; @@ -252,7 +251,6 @@ icvFloodFillGrad_CnIR( uchar* pImage, int step, uchar* pMask, int maskStep, CvConnectedComp* region, int flags, std::vector* buffer ) { - typedef typename cv::DataType<_Tp>::channel_type _CTp; _Tp* img = (_Tp*)(pImage + step*seed.y); uchar* mask = (pMask += maskStep + 1) + maskStep*seed.y; int i, L, R; diff --git a/modules/imgproc/src/imgwarp.cpp b/modules/imgproc/src/imgwarp.cpp index 848f6e9..e6c1894 100644 --- a/modules/imgproc/src/imgwarp.cpp +++ b/modules/imgproc/src/imgwarp.cpp @@ -1219,8 +1219,6 @@ static void resizeGeneric_( const Mat& src, Mat& dst, const int* yofs, const void* _beta, int xmin, int xmax, int ksize ) { - typedef typename HResize::value_type T; - typedef typename HResize::buf_type WT; typedef typename HResize::alpha_type AT; const AT* beta = (const AT*)_beta; diff --git a/modules/legacy/src/blobtrackgenyml.cpp b/modules/legacy/src/blobtrackgenyml.cpp index 5d0e870..8a41491 100644 --- a/modules/legacy/src/blobtrackgenyml.cpp +++ b/modules/legacy/src/blobtrackgenyml.cpp @@ -61,7 +61,7 @@ protected: { int ObjNum = m_TrackList.GetBlobNum(); int i; - char video_name[1024]; + char video_name[1024+1]; char* struct_name = NULL; CvFileStorage* storage = cvOpenFileStorage(m_pFileName,NULL,CV_STORAGE_WRITE_TEXT); diff --git a/modules/legacy/src/kdtree.cpp b/modules/legacy/src/kdtree.cpp index 12a4acd..a32677b 100644 --- a/modules/legacy/src/kdtree.cpp +++ b/modules/legacy/src/kdtree.cpp @@ -117,10 +117,10 @@ class CvKDTreeWrap : public CvFeatureTree { CvMat* results) { int rn = results->rows * results->cols; std::vector inbounds; - dispatch_cvtype(mat, ((__treetype*)data)-> - find_ortho_range((typename __treetype::scalar_type*)bounds_min->data.ptr, + assert(CV_MAT_DEPTH(mat->type) == CV_32F || CV_MAT_DEPTH(mat->type) == CV_64F); + ((__treetype*)data)->find_ortho_range((typename __treetype::scalar_type*)bounds_min->data.ptr, (typename __treetype::scalar_type*)bounds_max->data.ptr, - inbounds)); + inbounds); std::copy(inbounds.begin(), inbounds.begin() + std::min((int)inbounds.size(), rn), (int*) results->data.ptr); diff --git a/modules/ocl/src/brute_force_matcher.cpp b/modules/ocl/src/brute_force_matcher.cpp index 9c4a217..c12fa73 100644 --- a/modules/ocl/src/brute_force_matcher.cpp +++ b/modules/ocl/src/brute_force_matcher.cpp @@ -65,12 +65,12 @@ namespace cv static const int OPT_SIZE = 100; static const char * T_ARR [] = { - "uchar", - "char", - "ushort", - "short", - "int", - "float -D T_FLOAT", + "uchar", + "char", + "ushort", + "short", + "int", + "float -D T_FLOAT", "double"}; template < int BLOCK_SIZE, int MAX_DESC_LEN/*, typename Mask*/ > @@ -86,8 +86,8 @@ void matchUnrolledCached(const oclMat &query, const oclMat &train, const oclMat vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", T_ARR[query.depth()], distType, block_size, m_size); if(globalSize[0] != 0) @@ -128,8 +128,8 @@ void match(const oclMat &query, const oclMat &train, const oclMat &/*mask*/, vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", T_ARR[query.depth()], distType, block_size); if(globalSize[0] != 0) { @@ -171,8 +171,8 @@ void matchUnrolledCached(const oclMat &query, const oclMat &train, float maxDist vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", T_ARR[query.depth()], distType, block_size, m_size); if(globalSize[0] != 0) @@ -212,8 +212,8 @@ void radius_match(const oclMat &query, const oclMat &train, float maxDistance, c vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", T_ARR[query.depth()], distType, block_size); if(globalSize[0] != 0) @@ -312,8 +312,8 @@ void knn_matchUnrolledCached(const oclMat &query, const oclMat &train, const ocl vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", T_ARR[query.depth()], distType, block_size, m_size); if(globalSize[0] != 0) @@ -348,8 +348,8 @@ void knn_match(const oclMat &query, const oclMat &train, const oclMat &/*mask*/, vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", T_ARR[query.depth()], distType, block_size); if(globalSize[0] != 0) @@ -384,8 +384,8 @@ void calcDistanceUnrolled(const oclMat &query, const oclMat &train, const oclMat vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d -D MAX_DESC_LEN=%d", T_ARR[query.depth()], distType, block_size, m_size); if(globalSize[0] != 0) @@ -420,8 +420,8 @@ void calcDistance(const oclMat &query, const oclMat &train, const oclMat &/*mask vector< pair > args; char opt [OPT_SIZE] = ""; - sprintf(opt, - "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", + sprintf(opt, + "-D T=%s -D DIST_TYPE=%d -D BLOCK_SIZE=%d", T_ARR[query.depth()], distType, block_size); if(globalSize[0] != 0) @@ -561,7 +561,7 @@ void cv::ocl::BruteForceMatcher_OCL_base::matchSingle(const oclMat &query, const { if (query.empty() || train.empty()) return; - + CV_Assert(query.channels() == 1 && query.depth() < CV_64F); CV_Assert(train.cols == query.cols && train.type() == query.type()); @@ -673,7 +673,7 @@ void cv::ocl::BruteForceMatcher_OCL_base::matchCollection(const oclMat &query, c return; CV_Assert(query.channels() == 1 && query.depth() < CV_64F); - + const int nQuery = query.rows; ensureSizeIsEnough(1, nQuery, CV_32S, trainIdx); @@ -845,8 +845,8 @@ void cv::ocl::BruteForceMatcher_OCL_base::knnMatch2Collection(const oclMat &quer if (query.empty() || trainCollection.empty()) return; - typedef void (*caller_t)(const oclMat & query, const oclMat & trains, const oclMat & masks, - const oclMat & trainIdx, const oclMat & imgIdx, const oclMat & distance); + // typedef void (*caller_t)(const oclMat & query, const oclMat & trains, const oclMat & masks, + // const oclMat & trainIdx, const oclMat & imgIdx, const oclMat & distance); CV_Assert(query.channels() == 1 && query.depth() < CV_64F); @@ -993,7 +993,7 @@ void cv::ocl::BruteForceMatcher_OCL_base::knnMatch(const oclMat &query, vector< // radiusMatchSingle void cv::ocl::BruteForceMatcher_OCL_base::radiusMatchSingle(const oclMat &query, const oclMat &train, - oclMat &trainIdx, oclMat &distance, oclMat &nMatches, float maxDistance, const oclMat &mask) + oclMat &trainIdx, oclMat &distance, oclMat &nMatches, float maxDistance, const oclMat &mask) { if (query.empty() || train.empty()) return; @@ -1095,9 +1095,9 @@ void cv::ocl::BruteForceMatcher_OCL_base::radiusMatchCollection(const oclMat &qu if (query.empty() || empty()) return; +#if 0 typedef void (*caller_t)(const oclMat & query, const oclMat * trains, int n, float maxDistance, const oclMat * masks, const oclMat & trainIdx, const oclMat & imgIdx, const oclMat & distance, const oclMat & nMatches); -#if 0 static const caller_t callers[3][6] = { { diff --git a/modules/ocl/src/gemm.cpp b/modules/ocl/src/gemm.cpp index 840f628..44f23da 100644 --- a/modules/ocl/src/gemm.cpp +++ b/modules/ocl/src/gemm.cpp @@ -60,7 +60,7 @@ void cv::ocl::gemm(const oclMat &src1, const oclMat &src2, double alpha, const oclMat &src3, double beta, oclMat &dst, int flags) { CV_Assert(src1.cols == src2.rows && - (src3.empty() || src1.rows == src3.rows && src2.cols == src3.cols)); + (src3.empty() || (src1.rows == src3.rows && src2.cols == src3.cols))); CV_Assert(!(cv::GEMM_3_T & flags)); // cv::GEMM_3_T is not supported if(!src3.empty()) { diff --git a/modules/ocl/src/haar.cpp b/modules/ocl/src/haar.cpp index 1c727f0..8257a43 100644 --- a/modules/ocl/src/haar.cpp +++ b/modules/ocl/src/haar.cpp @@ -145,7 +145,8 @@ typedef struct int imgoff; float factor; } detect_piramid_info; -#ifdef WIN32 + +#if defined WIN32 && !defined __MINGW__ && !defined __MINGW32__ #define _ALIGNED_ON(_ALIGNMENT) __declspec(align(_ALIGNMENT)) typedef _ALIGNED_ON(128) struct GpuHidHaarFeature { -- 2.7.4