diff options
Diffstat (limited to 'lib/CodeGen/Designator.cc')
| -rw-r--r-- | lib/CodeGen/Designator.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/CodeGen/Designator.cc b/lib/CodeGen/Designator.cc index c7d0796..019c19e 100644 --- a/lib/CodeGen/Designator.cc +++ b/lib/CodeGen/Designator.cc @@ -231,6 +231,9 @@ Value *CodeGen::emitCoercedExpr(ExprAST *E, const TypeInfo *Target) { return nullptr; } if (Src && Src->sameType(Target) && !Target->isVoid()) return emitExpr(E); + if (Src && Src->Kind == TypeKind::CScalar && Target->Kind == TypeKind::CScalar && + !Src->isVoid() && !Target->isVoid()) + return convertNumericValue(emitExpr(E), Src, Target); reportError("Cannot implicitly convert %s to %s; use an explicit cast", Src ? Src->Name.c_str() : "expression", Target->Name.c_str()); return nullptr; |
