diff options
-rw-r--r-- | CodeGen/CGExprAgg.cpp | 2 | ||||
-rw-r--r-- | test/CodeGen/struct.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/CodeGen/CGExprAgg.cpp b/CodeGen/CGExprAgg.cpp index 5836262175..3781407f98 100644 --- a/CodeGen/CGExprAgg.cpp +++ b/CodeGen/CGExprAgg.cpp @@ -142,7 +142,7 @@ void AggExprEmitter::VisitImplicitCastExpr(ImplicitCastExpr *E) QualType STy = E->getSubExpr()->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()); } diff --git a/test/CodeGen/struct.c b/test/CodeGen/struct.c index 8f9ecd6080..be5917a3da 100644 --- a/test/CodeGen/struct.c +++ b/test/CodeGen/struct.c @@ -127,3 +127,12 @@ void f11() a1 = a2; a2 = a1; } + +/* Implicit casts (due to const) */ +void f12() +{ + struct _a a1; + const struct _a a2; + + a1 = a2; +}
\ No newline at end of file |