diff options
author | Alex Smith <alex.smith@warpsharp.info> | 2013-09-20 00:58:21 +0400 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2013-09-20 15:40:06 +0400 |
commit | 09f2581dc5edb3642858d69d9a70b67e249167e9 (patch) | |
tree | 3d420649016ebb804f218bbf6f9657d8c9cf5646 | |
parent | 5532ee6d7d554bb54d4374d0b69f72bc9ab9fd91 (diff) |
msvc/icl: Use __declspec(deprecated)
Prior to this on msvc/icl there was no handling of deprecated functions
and the deprecated warning was disabled.
After enabling there are a number of warnings relating to the CRT and
the use of the non-secure versions of several functions. Defining
_CRT_SECURE_NO_WARNINGS silences these warnings.
Signed-off-by: Martin Storsjö <martin@martin.st>
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | libavutil/attributes.h | 2 | ||||
-rw-r--r-- | libavutil/internal.h | 12 |
3 files changed, 15 insertions, 4 deletions
@@ -2417,7 +2417,7 @@ msvc_flags(){ -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ - -wd4996 -wd4273 ;; + -wd4273 ;; esac done } @@ -2641,7 +2641,7 @@ probe_cc(){ _ld_lib='lib%.a' _ld_path='-libpath:' _flags='-nologo' - _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64' + _cflags='-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64' if [ $pfx = hostcc ]; then append _cflags -Dsnprintf=_snprintf fi @@ -4019,6 +4019,7 @@ elif enabled_any msvc icl; then enabled x86_32 && disable aligned_stack enabled_all x86_32 debug && add_cflags -Oy- enabled debug && add_ldflags -debug + enable pragma_deprecated if enabled icl; then # basically -fstrict-aliasing that does not work (correctly) on icl 13.x check_cpp_condition "windows.h" "__ICL < 1300" && add_cflags -Qansi-alias diff --git a/libavutil/attributes.h b/libavutil/attributes.h index 292a0a1a88..850a73ff7a 100644 --- a/libavutil/attributes.h +++ b/libavutil/attributes.h @@ -72,6 +72,8 @@ #if AV_GCC_VERSION_AT_LEAST(3,1) # define attribute_deprecated __attribute__((deprecated)) +#elif defined(_MSC_VER) +# define attribute_deprecated __declspec(deprecated) #else # define attribute_deprecated #endif diff --git a/libavutil/internal.h b/libavutil/internal.h index b18860f084..7b178c25ae 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -62,8 +62,16 @@ #endif #if HAVE_PRAGMA_DEPRECATED -# define FF_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") -# define FF_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic warning \"-Wdeprecated-declarations\"") +# if defined(__ICL) +# define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:1478)) +# define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop)) +# elif defined(_MSC_VER) +# define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:4996)) +# define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop)) +# else +# define FF_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define FF_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic warning \"-Wdeprecated-declarations\"") +# endif #else # define FF_DISABLE_DEPRECATION_WARNINGS # define FF_ENABLE_DEPRECATION_WARNINGS |