forked from OSchip/llvm-project
[analyzer] [PointerArithChecker] do not warn on indexes into vector types
rdar://35041502 Differential Revision: https://reviews.llvm.org/D44172 llvm-svn: 326952
This commit is contained in:
parent
065962375d
commit
8e3a659105
|
@ -308,6 +308,10 @@ void PointerArithChecker::checkPreStmt(const ArraySubscriptExpr *SubsExpr,
|
|||
// Indexing with 0 is OK.
|
||||
if (Idx.isZeroConstant())
|
||||
return;
|
||||
|
||||
// Indexing vector-type expressions is also OK.
|
||||
if (SubsExpr->getBase()->getType()->isVectorType())
|
||||
return;
|
||||
reportPointerArithMisuse(SubsExpr->getBase(), C);
|
||||
}
|
||||
|
||||
|
|
|
@ -347,3 +347,9 @@ void test_no_crash_on_pointer_to_label() {
|
|||
a[0] = 0;
|
||||
label:;
|
||||
}
|
||||
|
||||
typedef __attribute__((__ext_vector_type__(2))) float simd_float2;
|
||||
float test_nowarning_on_vector_deref() {
|
||||
simd_float2 x = {0, 1};
|
||||
return x[1]; // no-warning
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue