From eeb0b8fd21dba8421bd50b475a6442c27b63a1a6 Mon Sep 17 00:00:00 2001
From: Robert Loehning <robert.loehning@qt.io>
Date: Thu, 19 Jan 2017 13:07:26 +0100
Subject: [PATCH] Revert "Revert "Utils: Remove old compiler support code""

Thomas provided a smaller fix.
This reverts commit 78fb7f44bf393d8b9e3e22fcccc4ae7951d4bb6e.

Change-Id: I1edff6477526fe4ce29df38852f47fe49117561e
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
---
 src/libs/utils/smallstring.h                  | 16 --------------
 src/libs/utils/smallstringiterator.h          |  7 -------
 src/libs/utils/smallstringlayout.h            | 21 +------------------
 src/libs/utils/smallstringliteral.h           | 13 ------------
 src/libs/utils/smallstringvector.h            |  7 -------
 src/libs/utils/smallstringview.h              | 13 ------------
 tests/unit/unittest/smallstring-benchmark.cpp |  4 ----
 tests/unit/unittest/smallstring-test.cpp      |  4 ----
 8 files changed, 1 insertion(+), 84 deletions(-)

diff --git a/src/libs/utils/smallstring.h b/src/libs/utils/smallstring.h
index 905520055f6..e172cbaae60 100644
--- a/src/libs/utils/smallstring.h
+++ b/src/libs/utils/smallstring.h
@@ -45,19 +45,6 @@
 #include <utility>
 #include <vector>
 
-#pragma push_macro("constexpr")
-#ifndef __cpp_constexpr
-#define constexpr
-#endif
-
-#pragma push_macro("noexcept")
-#ifdef __clang__
-#define  __cpp_noexcept 201003
-#endif
-#ifndef __cpp_noexcept
-#define noexcept
-#endif
-
 #ifdef UNIT_TESTS
 #define unitttest_public public
 #else
@@ -864,6 +851,3 @@ using SmallString = BasicSmallString<31>;
 using PathString = BasicSmallString<191>;
 
 } // namespace Utils
-
-#pragma pop_macro("noexcept")
-#pragma pop_macro("constexpr")
diff --git a/src/libs/utils/smallstringiterator.h b/src/libs/utils/smallstringiterator.h
index 5f4bd69402e..026a8b78b56 100644
--- a/src/libs/utils/smallstringiterator.h
+++ b/src/libs/utils/smallstringiterator.h
@@ -28,11 +28,6 @@
 #include <cstddef>
 #include <iterator>
 
-#pragma push_macro("noexcept")
-#ifndef __cpp_noexcept
-#define noexcept
-#endif
-
 namespace Utils {
 
 namespace Internal {
@@ -151,5 +146,3 @@ private:
 } // namespace Internal
 
 } // namespace Utils
-
-#pragma pop_macro("noexcept")
diff --git a/src/libs/utils/smallstringlayout.h b/src/libs/utils/smallstringlayout.h
index c03bdc4ad80..7fcaefd0078 100644
--- a/src/libs/utils/smallstringlayout.h
+++ b/src/libs/utils/smallstringlayout.h
@@ -29,22 +29,6 @@
 
 #include <cstdint>
 
-#pragma push_macro("constexpr")
-#ifndef __cpp_constexpr
-#define constexpr
-#endif
-
-#pragma push_macro("noexcept")
-#ifndef __cpp_noexcept
-#define noexcept
-#endif
-
-#ifdef __cpp_alignas
-#define ALIGNAS_16 alignas(16)
-#else
-#define ALIGNAS_16
-#endif
-
 namespace Utils {
 
 namespace Internal {
@@ -86,7 +70,7 @@ struct ShortStringLayout {
 };
 
 template <uint MaximumShortStringDataAreaSize>
-struct ALIGNAS_16 StringDataLayout {
+struct alignas(16) StringDataLayout {
     static_assert( MaximumShortStringDataAreaSize >= 15, "Size must be greater equal than 15 bytes!");
     static_assert(((MaximumShortStringDataAreaSize + 1) % 16) == 0, "Size + 1 must be dividable by 16!");
     StringDataLayout() noexcept = default;
@@ -136,6 +120,3 @@ struct ALIGNAS_16 StringDataLayout {
 
 } // namespace Internal
 }  // namespace Utils
-
-#pragma pop_macro("noexcept")
-#pragma pop_macro("constexpr")
diff --git a/src/libs/utils/smallstringliteral.h b/src/libs/utils/smallstringliteral.h
index dacba59d60a..4b7a6ba633c 100644
--- a/src/libs/utils/smallstringliteral.h
+++ b/src/libs/utils/smallstringliteral.h
@@ -29,16 +29,6 @@
 #include "smallstringlayout.h"
 #include "smallstringview.h"
 
-#pragma push_macro("constexpr")
-#ifndef __cpp_constexpr
-#define constexpr
-#endif
-
-#pragma push_macro("noexcept")
-#ifndef __cpp_noexcept
-#define noexcept
-#endif
-
 namespace Utils {
 
 template <int Size>
@@ -129,6 +119,3 @@ private:
 using SmallStringLiteral = BasicSmallStringLiteral<31>;
 
 }  // namespace Utils
-
-#pragma pop_macro("noexcept")
-#pragma pop_macro("constexpr")
diff --git a/src/libs/utils/smallstringvector.h b/src/libs/utils/smallstringvector.h
index 1a8406210c7..3e98b36f9fd 100644
--- a/src/libs/utils/smallstringvector.h
+++ b/src/libs/utils/smallstringvector.h
@@ -33,11 +33,6 @@
 
 #include <QStringList>
 
-#pragma push_macro("noexcept")
-#ifndef __cpp_noexcept
-#define noexcept
-#endif
-
 namespace Utils {
 
 template<uint SmallStringSize>
@@ -160,5 +155,3 @@ private:
 using SmallStringVector = BasicSmallStringVector<31>;
 using PathStringVector = BasicSmallStringVector<191>;
 } // namespace Utils;
-
-#pragma pop_macro("noexcept")
diff --git a/src/libs/utils/smallstringview.h b/src/libs/utils/smallstringview.h
index c0cb4aedbb3..71d04fe20d2 100644
--- a/src/libs/utils/smallstringview.h
+++ b/src/libs/utils/smallstringview.h
@@ -31,16 +31,6 @@
 
 #include <cstring>
 
-#pragma push_macro("constexpr")
-#ifndef __cpp_constexpr
-#define constexpr
-#endif
-
-#pragma push_macro("noexcept")
-#ifndef __cpp_noexcept
-#define noexcept
-#endif
-
 namespace Utils {
 
 class SmallStringView
@@ -135,6 +125,3 @@ bool operator!=(const SmallStringView& first, const SmallStringView& second) noe
 }
 
 } // namespace Utils
-
-#pragma pop_macro("noexcept")
-#pragma pop_macro("constexpr")
diff --git a/tests/unit/unittest/smallstring-benchmark.cpp b/tests/unit/unittest/smallstring-benchmark.cpp
index 46b32cde0ed..99bc27dded5 100644
--- a/tests/unit/unittest/smallstring-benchmark.cpp
+++ b/tests/unit/unittest/smallstring-benchmark.cpp
@@ -29,10 +29,6 @@
 
 #include <utils/smallstringvector.h>
 
-#ifndef __cpp_constexpr
-#define constexpr
-#endif
-
 namespace {
 
 Utils::SmallStringView createText(int size)
diff --git a/tests/unit/unittest/smallstring-test.cpp b/tests/unit/unittest/smallstring-test.cpp
index 3bbb10c6539..863d2ec66e3 100644
--- a/tests/unit/unittest/smallstring-test.cpp
+++ b/tests/unit/unittest/smallstring-test.cpp
@@ -31,10 +31,6 @@
 #include <utils/smallstringio.h>
 #include <utils/smallstringvector.h>
 
-#ifndef __cpp_constexpr
-#define constexpr
-#endif
-
 using namespace ::testing;
 
 using Utils::SmallString;
-- 
GitLab