GRExprEngine::VisitInitListExpr:
- Don't crash on vector types. - Handle typedefs. llvm-svn: 59220
This commit is contained in:
parent
ed90e701f0
commit
45698bf05f
|
@ -1777,7 +1777,7 @@ void GRExprEngine::VisitInitListExpr(InitListExpr* E, NodeTy* Pred,
|
|||
NodeSet& Dst) {
|
||||
|
||||
const GRState* state = GetState(Pred);
|
||||
QualType T = E->getType();
|
||||
QualType T = getContext().getCanonicalType(E->getType());
|
||||
unsigned NumInitElements = E->getNumInits();
|
||||
|
||||
if (T->isArrayType() || T->isStructureType()) {
|
||||
|
@ -1847,7 +1847,7 @@ void GRExprEngine::VisitInitListExpr(InitListExpr* E, NodeTy* Pred,
|
|||
return;
|
||||
}
|
||||
|
||||
if (T->isUnionType()) {
|
||||
if (T->isUnionType() || T->isVectorType()) {
|
||||
// FIXME: to be implemented.
|
||||
MakeNode(Dst, E, Pred, state);
|
||||
return;
|
||||
|
|
|
@ -56,3 +56,11 @@ void checkaccess_union() {
|
|||
).__i))) & 0xff00) >> 8) == 1)
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
// InitListExpr processing
|
||||
|
||||
typedef float __m128 __attribute__((__vector_size__(16), __may_alias__));
|
||||
__m128 return128() {
|
||||
return __extension__(__m128) { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue