diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Support/SmallVector.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Support/SmallVector.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/contrib/llvm-project/llvm/lib/Support/SmallVector.cpp b/contrib/llvm-project/llvm/lib/Support/SmallVector.cpp index 0005f7840912..2d7721e4e1fb 100644 --- a/contrib/llvm-project/llvm/lib/Support/SmallVector.cpp +++ b/contrib/llvm-project/llvm/lib/Support/SmallVector.cpp @@ -11,6 +11,7 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/Twine.h" #include <cstdint> #ifdef LLVM_ENABLE_EXCEPTIONS #include <stdexcept> @@ -19,12 +20,21 @@ using namespace llvm; // Check that no bytes are wasted and everything is well-aligned. namespace { +// These structures may cause binary compat warnings on AIX. Suppress the +// warning since we are only using these types for the static assertions below. +#if defined(_AIX) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Waix-compat" +#endif struct Struct16B { alignas(16) void *X; }; struct Struct32B { alignas(32) void *X; }; +#if defined(_AIX) +#pragma GCC diagnostic pop +#endif } static_assert(sizeof(SmallVector<void *, 0>) == sizeof(unsigned) * 2 + sizeof(void *), @@ -47,8 +57,7 @@ static_assert(sizeof(SmallVector<char, 0>) == /// Report that MinSize doesn't fit into this vector's size type. Throws /// std::length_error or calls report_fatal_error. -LLVM_ATTRIBUTE_NORETURN -static void report_size_overflow(size_t MinSize, size_t MaxSize); +[[noreturn]] static void report_size_overflow(size_t MinSize, size_t MaxSize); static void report_size_overflow(size_t MinSize, size_t MaxSize) { std::string Reason = "SmallVector unable to grow. Requested capacity (" + std::to_string(MinSize) + @@ -57,13 +66,13 @@ static void report_size_overflow(size_t MinSize, size_t MaxSize) { #ifdef LLVM_ENABLE_EXCEPTIONS throw std::length_error(Reason); #else - report_fatal_error(Reason); + report_fatal_error(Twine(Reason)); #endif } /// Report that this vector is already at maximum capacity. Throws /// std::length_error or calls report_fatal_error. -LLVM_ATTRIBUTE_NORETURN static void report_at_maximum_capacity(size_t MaxSize); +[[noreturn]] static void report_at_maximum_capacity(size_t MaxSize); static void report_at_maximum_capacity(size_t MaxSize) { std::string Reason = "SmallVector capacity unable to grow. Already at maximum size " + @@ -71,7 +80,7 @@ static void report_at_maximum_capacity(size_t MaxSize) { #ifdef LLVM_ENABLE_EXCEPTIONS throw std::length_error(Reason); #else - report_fatal_error(Reason); + report_fatal_error(Twine(Reason)); #endif } |