diff options
| -rw-r--r-- | clang/CodeGen/CGExprAgg.cpp | 2 | ||||
| -rw-r--r-- | clang/test/CodeGen/struct.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/CodeGen/CGExprAgg.cpp b/clang/CodeGen/CGExprAgg.cpp index 5836262175f..3781407f988 100644 --- a/clang/CodeGen/CGExprAgg.cpp +++ b/clang/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/clang/test/CodeGen/struct.c b/clang/test/CodeGen/struct.c index 8f9ecd6080a..be5917a3da9 100644 --- a/clang/test/CodeGen/struct.c +++ b/clang/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 |

