aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CodeGen/CGExprAgg.cpp2
-rw-r--r--test/CodeGen/struct.c9
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