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/12/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
Directory Properties:
  stable/12/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
Directory Properties:
  stable/11/   (props changed)

Modified: stable/12/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp
==============================================================================
--- stable/12/contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp	Wed Nov 11 22:00:30 2020	(r367601)
+++ stable/12/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