@@ -1688,8 +1688,9 @@ static bool CheckVectorElementCallArgs(Sema *S, CallExpr *TheCall) {
1688
1688
auto *VecTyA = ArgTyA->getAs <VectorType>();
1689
1689
SourceLocation BuiltinLoc = TheCall->getBeginLoc ();
1690
1690
1691
+ ExprResult B;
1691
1692
for (unsigned i = 1 ; i < TheCall->getNumArgs (); ++i) {
1692
- ExprResult B = TheCall->getArg (i);
1693
+ B = TheCall->getArg (i);
1693
1694
QualType ArgTyB = B.get ()->getType ();
1694
1695
auto *VecTyB = ArgTyB->getAs <VectorType>();
1695
1696
if (VecTyA == nullptr && VecTyB == nullptr )
@@ -1712,8 +1713,7 @@ static bool CheckVectorElementCallArgs(Sema *S, CallExpr *TheCall) {
1712
1713
// HLSLVectorTruncation.
1713
1714
S->Diag (BuiltinLoc, diag::err_vec_builtin_incompatible_vector)
1714
1715
<< TheCall->getDirectCallee () << /* useAllTerminology*/ true
1715
- << SourceRange (TheCall->getArg (0 )->getBeginLoc (),
1716
- TheCall->getArg (1 )->getEndLoc ());
1716
+ << SourceRange (A.get ()->getBeginLoc (), B.get ()->getEndLoc ());
1717
1717
retValue = true ;
1718
1718
}
1719
1719
return retValue;
@@ -1724,8 +1724,7 @@ static bool CheckVectorElementCallArgs(Sema *S, CallExpr *TheCall) {
1724
1724
// requires a VectorSplat on Arg0 or Arg1
1725
1725
S->Diag (BuiltinLoc, diag::err_vec_builtin_non_vector)
1726
1726
<< TheCall->getDirectCallee () << /* useAllTerminology*/ true
1727
- << SourceRange (TheCall->getArg (0 )->getBeginLoc (),
1728
- TheCall->getArg (1 )->getEndLoc ());
1727
+ << SourceRange (A.get ()->getBeginLoc (), B.get ()->getEndLoc ());
1729
1728
return true ;
1730
1729
}
1731
1730
0 commit comments