efriedma added inline comments.

================
Comment at: clang/test/CodeGen/PR42672.c:50
+  struct {
+    long long int v1, v2, v3, v4;
+  } str;
----------------
glider wrote:
> The acceptable size actually depends on the target platform. Not sure we can 
> test for all of them, and we'll probably need to restrict this test to e.g. 
> x86
The interesting case for a 32-byte struct would actually be something like 
`"=x"(str)`... which currently passes the clang frontend, since 32 is a legal 
size for that constraint (although it eventually fails in the backend).


================
Comment at: clang/test/CodeGen/PR42672.c:3
+// RUN: %clang_cc1 -USTRUCT -emit-llvm %s -o - | FileCheck %s 
--check-prefix=CHECK-NOSTRUCT
+// RUN: %clang_cc1 -triple=x86_64-unknown-linux-gnu -DIMPOSSIBLE -emit-llvm %s 
-o - 2> %t || true
+// RUN: grep "impossible constraint in asm" %t
----------------
Might as well just make all these tests use an x86 triple; I don't really want 
to speculate how an unknown target will react to any specific size.


================
Comment at: clang/test/CodeGen/PR42672.c:40
+    unsigned short first;
+    unsigned char second;
+  } str;
----------------
This isn't a three-byte struct; it's a four-byte struct where one of the bytes 
is only used for padding. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65234/new/

https://reviews.llvm.org/D65234



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to