[clang] [clang][SPARC] Treat empty structs as if it's a one-bit type in the CC (PR #90338)

via cfe-commits cfe-commits at lists.llvm.org
Wed May 1 15:53:28 PDT 2024


================
@@ -21,6 +21,12 @@ char f_int_4(char x) { return x; }
 // CHECK-LABEL: define{{.*}} fp128 @f_ld(fp128 noundef %x)
 long double f_ld(long double x) { return x; }
 
+// Empty struct is lowered as a placeholder word parameter.
+struct empty {};
+
+// CHECK-LABEL: define{{.*}} i64 @f_empty(i64 %x.coerce)
+struct empty f_empty(struct empty x) { return x; }
+
----------------
koachan wrote:

> struct with an empty base class

I don't think that this would affect C++, given that it already specifies empty structs/classes to have a size of one byte.
This is only an issue for C when using GCC's empty struct extension (as empty structs are zero bytes in it)...


https://github.com/llvm/llvm-project/pull/90338


More information about the cfe-commits mailing list