aboutsummaryrefslogtreecommitdiff
path: root/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Sema/SemaDecl.cpp')
-rw-r--r--Sema/SemaDecl.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 1290975a24..c77496f066 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -576,6 +576,8 @@ bool Sema::CheckInitializer(Expr *&Init, QualType &DeclType, bool isStatic) {
// Return a new array type (C99 6.7.8p22).
DeclType = Context.getConstantArrayType(VAT->getElementType(), ConstVal,
ArrayType::Normal, 0);
+ // set type from "char *" to "constant array of char".
+ strLiteral->setType(DeclType);
return hadError;
}
const ConstantArrayType *CAT = DeclType->getAsConstantArrayType();
@@ -586,6 +588,8 @@ bool Sema::CheckInitializer(Expr *&Init, QualType &DeclType, bool isStatic) {
diag::warn_initializer_string_for_char_array_too_long,
strLiteral->getSourceRange());
}
+ // set type from "char *" to "constant array of char".
+ strLiteral->setType(DeclType);
return hadError;
}
}