================
@@ -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);
----------------
efriedma-quic wrote:
It's a little weird that the resulting type can be larger than what integer
promotion would produce (without this patch, `struct S { long l : 4; }; S s;
static_assert(sizeof(__builtin_elementwise_abs(s.l)) == 4);`). But maybe
that's fine.
https://github.com/llvm/llvm-project/pull/119423
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits