[PATCH] D76693: [Sema][SVE] Allow ?: to select between SVE types in C
Richard Sandiford via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 25 04:18:08 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG578fb2501a66: [Sema][SVE] Allow ?: to select between SVE types in C (authored by rsandifo-arm).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76693/new/
https://reviews.llvm.org/D76693
Files:
clang/lib/Sema/SemaExpr.cpp
clang/test/Sema/sizeless-1.c
Index: clang/test/Sema/sizeless-1.c
===================================================================
--- clang/test/Sema/sizeless-1.c
+++ clang/test/Sema/sizeless-1.c
@@ -126,6 +126,11 @@
const_volatile_int8 = local_int8; // expected-error {{cannot assign to variable 'const_volatile_int8' with const-qualified type 'const volatile svint8_t'}}
+ init_int8 = sel ? init_int8 : local_int8;
+ init_int8 = sel ? init_int8 : const_int8;
+ init_int8 = sel ? volatile_int8 : const_int8;
+ init_int8 = sel ? volatile_int8 : const_volatile_int8;
+
pass_int8(local_int8);
pass_int8(local_int16); // expected-error {{passing 'svint16_t' (aka '__SVInt16_t') to parameter of incompatible type 'svint8_t'}}
Index: clang/lib/Sema/SemaExpr.cpp
===================================================================
--- clang/lib/Sema/SemaExpr.cpp
+++ clang/lib/Sema/SemaExpr.cpp
@@ -7586,6 +7586,11 @@
/*IsIntFirstExpr=*/false))
return LHSTy;
+ // Allow ?: operations in which both operands have the same
+ // built-in sizeless type.
+ if (LHSTy->isSizelessBuiltinType() && LHSTy == RHSTy)
+ return LHSTy;
+
// Emit a better diagnostic if one of the expressions is a null pointer
// constant and the other is not a pointer type. In this case, the user most
// likely forgot to take the address of the other expression.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76693.252538.patch
Type: text/x-patch
Size: 1351 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200325/35f6f6c9/attachment.bin>
More information about the cfe-commits
mailing list