[clang] [clang] Restrict use of scalar types in vector builtins (PR #119423)

Fraser Cormack via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 6 06:16:46 PST 2025


================
@@ -14585,11 +14585,18 @@ void Sema::CheckAddressOfPackedMember(Expr *rhs) {
                      _2, _3, _4));
 }
 
+static ExprResult UsualUnaryConversionsNoPromoteInt(Sema &S, Expr *E) {
+  // Don't promote integer types
+  if (QualType Ty = E->getType(); S.getASTContext().isPromotableIntegerType(Ty))
+    return S.DefaultFunctionArrayLvalueConversion(E);
+  return S.UsualUnaryConversions(E);
----------------
frasercrmck wrote:

Could we perhaps extend `UsualUnaryConversions` with a default-true bool flag to control the handling of integers/bitfields? I can see that it might be exposing too many internal details to users of `UsualUnaryConversions`, so I'm not sure. I don't know the best practices of clang/sema design here.

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


More information about the cfe-commits mailing list