================ @@ -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:
It appears to match GCC's behavior, yes. As for tests, would something like [this](https://github.com/llvm/llvm-project/pull/90338/files#diff-c3d7a0e691e2cd679ffeaec76d9ccb0626e21d24e9e07dd84260f22d438d2b99) be enough? https://github.com/llvm/llvm-project/pull/90338 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits