[NFC][Clang] Modify expect of fail test or XFAIL because CSKY align is different
authorZi Xuan Wu (Zeson) <zixuan.wu@linux.alibaba.com>
Wed, 11 May 2022 08:48:40 +0000 (16:48 +0800)
committerZi Xuan Wu <zixuan.wu@linux.alibaba.com>
Wed, 18 May 2022 02:53:30 +0000 (10:53 +0800)
CSKY is always in 4-byte align, no matter it's long long type.
For global aggregate variable, it's 4-byte align if its size is bigger than or equal to 4 bytes.

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

clang/test/CodeGen/c-strings.c
clang/test/Sema/builtin-alloca-with-align.c

index 0853801..e783b6c 100644 (file)
 // fails the check for "@f3.x = ... align [ALIGN]", since ALIGN is derived
 // from the alignment of a single i8, which is still 1.
 
+// XFAIL: csky
+// CSKY aligns arrays of size 4+ bytes to a 32-bit boundary, which
+// fails the check for "@f2.x = ... align [ALIGN]", since ALIGN is derived
+// from the alignment of a single i8, which is still 1.
+
 #if defined(__s390x__)
 unsigned char align = 2;
 #else
@@ -69,4 +74,3 @@ void f4(void) {
 }
 
 char x[3] = "ola";
-
index cac171f..0a3e0f6 100644 (file)
@@ -30,4 +30,8 @@ void test7(int a) {
 
 void test8(void) {
   __builtin_alloca_with_align(sizeof(__INT64_TYPE__), __alignof__(__INT64_TYPE__)); // expected-warning {{second argument to __builtin_alloca_with_align is supposed to be in bits}}
+#if defined(__csky__)
+  // expected-error@-1 {{requested alignment must be 8 or greater}}
+  // Because the alignment of long long is 4 in CSKY target
+#endif
 }