summaryrefslogtreecommitdiff
authorAlex Smith <alex.smith@warpsharp.info>2013-09-19 20:58:21 (GMT)
committer Martin Storsjö <martin@martin.st>2013-09-20 11:40:06 (GMT)
commit09f2581dc5edb3642858d69d9a70b67e249167e9 (patch)
tree3d420649016ebb804f218bbf6f9657d8c9cf5646
parent5532ee6d7d554bb54d4374d0b69f72bc9ab9fd91 (diff)
downloadffmpeg-09f2581dc5edb3642858d69d9a70b67e249167e9.zip
ffmpeg-09f2581dc5edb3642858d69d9a70b67e249167e9.tar.gz
ffmpeg-09f2581dc5edb3642858d69d9a70b67e249167e9.tar.bz2
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>
Diffstat
-rwxr-xr-xconfigure5
-rw-r--r--libavutil/attributes.h2
-rw-r--r--libavutil/internal.h12
3 files changed, 15 insertions, 4 deletions
diff --git a/configure b/configure
index a7d981a..928e5f4 100755
--- a/configure
+++ b/configure
@@ -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 292a0a1..850a73f 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 b18860f..7b178c2 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