Assert that the type of the cast is equal to the _unqualified_ type of the subexpression. Fixes a problem spotted by Nuno Lopes.
llvm-svn: 46158
This commit is contained in:
parent
159ee39f4d
commit
60bfc161a0
|
@ -142,7 +142,7 @@ void AggExprEmitter::VisitImplicitCastExpr(ImplicitCastExpr *E)
|
||||||
QualType STy = E->getSubExpr()->getType().getCanonicalType();
|
QualType STy = E->getSubExpr()->getType().getCanonicalType();
|
||||||
QualType Ty = E->getType().getCanonicalType();
|
QualType Ty = E->getType().getCanonicalType();
|
||||||
|
|
||||||
assert(STy == Ty && "Implicit cast types must be equal");
|
assert(STy.getUnqualifiedType() == Ty && "Implicit cast types must be equal");
|
||||||
|
|
||||||
Visit(E->getSubExpr());
|
Visit(E->getSubExpr());
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,3 +127,12 @@ void f11()
|
||||||
a1 = a2;
|
a1 = a2;
|
||||||
a2 = a1;
|
a2 = a1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Implicit casts (due to const) */
|
||||||
|
void f12()
|
||||||
|
{
|
||||||
|
struct _a a1;
|
||||||
|
const struct _a a2;
|
||||||
|
|
||||||
|
a1 = a2;
|
||||||
|
}
|
Loading…
Reference in New Issue