[AIX] Suppress -Waix-compat warning with SmallVector class
authorJake Egan <Jake.Egan@ibm.com>
Mon, 30 Aug 2021 14:42:59 +0000 (10:42 -0400)
committerJake Egan <Jake.Egan@ibm.com>
Mon, 30 Aug 2021 14:59:47 +0000 (10:59 -0400)
When building LLVM with Open XL and -Werror is specified, the -Waix-compat warning becomes an error. This patch updates the SmallVector class to suppress the -Waix-compat warning/error on AIX.

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D108577

llvm/lib/Support/SmallVector.cpp

index 0e2378b..61780e7 100644 (file)
@@ -19,12 +19,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 *),