svn commit: r367602 - in stable: 11/contrib/llvm-project/clang/lib/Sema 12/contrib/llvm-project/clang/lib/Sema
Dimitry Andric
dim at FreeBSD.org
Wed Nov 11 22:15:26 UTC 2020
Author: dim
Date: Wed Nov 11 22:15:25 2020
New Revision: 367602
URL: https://svnweb.freebsd.org/changeset/base/367602
Log:
MFC r366683:
Merge commit 35ecc7fe4 from llvm git (by Hubert Tong):
[clang][Sema] Fix PR47676: Handle dependent AltiVec C-style cast
Fix premature decision in the presence of type-dependent expression
operands on whether AltiVec vector initializations from single
expressions are "splat" operations.
Verify that the instantiation is able to determine the correct cast
semantics for both the scalar type and the vector type case.
Note that, because the change only affects the single-expression case
(and the target type is an AltiVec-style vector type), the
replacement of a parenthesized list with a parenthesized expression
does not change the semantics of the program in a program-observable
manner.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D88526
This should fix 'Assertion failed: (isScalarType()), function
getScalarTypeKind, file /usr/src/contrib/llvm-project/clang/lib/AST
/Type.cpp, line 2146', when building the graphics/opencv-core port for
powerpc64le.
Requested by: pkubaj
Modified:
stable/11/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
Directory Properties:
stable/11/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/12/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
Directory Properties:
stable/12/ (props changed)
Modified: stable/11/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
==============================================================================
--- stable/11/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp Wed Nov 11 22:00:30 2020 (r367601)
+++ stable/11/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp Wed Nov 11 22:15:25 2020 (r367602)
@@ -6809,7 +6809,7 @@ Sema::ActOnCastExpr(Scope *S, SourceLocation LParenLoc
}
if (PE || PLE->getNumExprs() == 1) {
Expr *E = (PE ? PE->getSubExpr() : PLE->getExpr(0));
- if (!E->getType()->isVectorType())
+ if (!E->isTypeDependent() && !E->getType()->isVectorType())
isVectorLiteral = true;
}
else
More information about the svn-src-all
mailing list