[clang] [Clang] Fix crash for incompatible types in inline assembly (PR #119098)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 12 14:55:20 PST 2024


================
@@ -365,3 +365,9 @@ void test19(long long x)
   // FIXME: This case should be supported by codegen, but it fails now.
   asm ("" : "=rm" (x): "0" (e)); // expected-error {{unsupported inline asm: input with type 'st_size128' (aka 'struct _st_size128') matching output with type 'long long'}}
 }
+
+// GH118892
+void test20(char x) {
+  double value;
+  asm ("fabs" : "=t" (value): "0" (x)); // expected-error {{unsupported inline asm: input with type 'char' matching output with type 'double'}}
+}
----------------
arsenm wrote:

No, I mean like int2 `typedef int int2 __attribute__((ext_vector_type(2)))`

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


More information about the cfe-commits mailing list