From 62aede9866577e45deae9f6cd255969f398d1249 Mon Sep 17 00:00:00 2001 From: Mikhail Komarov Date: Fri, 24 Jul 2020 19:41:49 +0300 Subject: [PATCH 1/5] Initial target attribute definition implemented #1 --- include/boost/config/compiler/clang.hpp | 3 +++ include/boost/config/compiler/gcc.hpp | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 9d8ba7d71..0e5905a77 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -351,3 +351,6 @@ // Macro used to identify the Clang compiler. #define BOOST_CLANG 1 +#if (__clang_major__ >= 3) && (__clang_minor__ >= 8) +# define BOOST_ATTRIBUTE_TARGET(isa) __attribute__ ((target(isa))) +#endif \ No newline at end of file diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index da1a43229..a17c91c0d 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -242,7 +242,7 @@ // C++0x features in 4.7.n and later // #if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) -// Note that while constexpr is partly supported in gcc-4.6 it's a +// Note that while constexpr is partly supported in gcc-4.6 it's a // pre-std version with several bugs: # define BOOST_NO_CXX11_CONSTEXPR # define BOOST_NO_CXX11_FINAL @@ -373,3 +373,6 @@ # endif #endif +#if (BOOST_GCC_VERSION >= 40800) +# define BOOST_ATTRIBUTE_TARGET(isa) __attribute__ ((target(isa))) +#endif \ No newline at end of file From 8f815fdf5facf27af018b72e1235ac1dd712699f Mon Sep 17 00:00:00 2001 From: Mikhail Komarov Date: Fri, 24 Jul 2020 20:02:50 +0300 Subject: [PATCH 2/5] Initial implementation done #2 --- include/boost/config/compiler/clang.hpp | 6 +++++- include/boost/config/compiler/gcc.hpp | 4 +++- include/boost/config/compiler/visualc.hpp | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 0e5905a77..b0df349fd 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -353,4 +353,8 @@ #if (__clang_major__ >= 3) && (__clang_minor__ >= 8) # define BOOST_ATTRIBUTE_TARGET(isa) __attribute__ ((target(isa))) -#endif \ No newline at end of file +#endif + +#if defined(__clang__) && !defined(_MSC_VER) +# define BOOST_ATTRIBUTE_MALLOC_FUNCTION __attribute__ ((malloc)) +#endif diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index a17c91c0d..99fb9143d 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -375,4 +375,6 @@ #if (BOOST_GCC_VERSION >= 40800) # define BOOST_ATTRIBUTE_TARGET(isa) __attribute__ ((target(isa))) -#endif \ No newline at end of file +#endif + +#define BOOST_ATTRIBUTE_MALLOC_FUNCTION __attribute__ ((malloc)) \ No newline at end of file diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index 7335540db..198dae330 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -365,3 +365,8 @@ // BOOST_PRAGMA_MESSAGE("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an updated Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.") # endif #endif + + +#if defined(_MSC_VER) +# define BOOST_ATTRIBUTE_MALLOC_FUNCTION __declspec(restrict) +#endif \ No newline at end of file From 56f678e0bf0bd3cdfb24dcc28cd9e73d3033a58c Mon Sep 17 00:00:00 2001 From: Mikhail Komarov Date: Fri, 24 Jul 2020 20:57:47 +0300 Subject: [PATCH 3/5] Clang version detection changes #2 --- include/boost/config/compiler/clang.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index b0df349fd..979512883 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -351,7 +351,7 @@ // Macro used to identify the Clang compiler. #define BOOST_CLANG 1 -#if (__clang_major__ >= 3) && (__clang_minor__ >= 8) +#if (__clang_major__ >= 4 || (__clang_major__ >= 3 && __clang_minor__ >= 8)) # define BOOST_ATTRIBUTE_TARGET(isa) __attribute__ ((target(isa))) #endif From c635bfaf00a3e0ea66d9c9f14f98e9767e6e8445 Mon Sep 17 00:00:00 2001 From: Mikhail Komarov Date: Fri, 24 Jul 2020 23:16:52 +0300 Subject: [PATCH 4/5] Minor fixes #2 --- include/boost/config/compiler/clang.hpp | 1 + include/boost/config/compiler/gcc.hpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 979512883..4ef36a3e2 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -358,3 +358,4 @@ #if defined(__clang__) && !defined(_MSC_VER) # define BOOST_ATTRIBUTE_MALLOC_FUNCTION __attribute__ ((malloc)) #endif + diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index 99fb9143d..1af756c80 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -377,4 +377,5 @@ # define BOOST_ATTRIBUTE_TARGET(isa) __attribute__ ((target(isa))) #endif -#define BOOST_ATTRIBUTE_MALLOC_FUNCTION __attribute__ ((malloc)) \ No newline at end of file +#define BOOST_ATTRIBUTE_MALLOC_FUNCTION __attribute__ ((malloc)) + From b9ed8db21c81cb5a636e9677084d8b0065f2cd0d Mon Sep 17 00:00:00 2001 From: Mikhail Komarov Date: Fri, 24 Jul 2020 23:24:00 +0300 Subject: [PATCH 5/5] More minor fixes #2 --- include/boost/config/compiler/visualc.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index 198dae330..c2e3d14b8 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -369,4 +369,4 @@ #if defined(_MSC_VER) # define BOOST_ATTRIBUTE_MALLOC_FUNCTION __declspec(restrict) -#endif \ No newline at end of file +#endif