diff options
author | Steve Naroff <snaroff@apple.com> | 2007-12-11 00:00:01 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2007-12-11 00:00:01 +0000 |
commit | 32150f324727d0240f08e7df3abf54d2377af25b (patch) | |
tree | 5df5ac9c790118441862547340c86313eae0c5d5 /Sema/SemaDecl.cpp | |
parent | 9a8385d6653a50169284fa031be287645ae4b114 (diff) |
Explicitly set the string literal type from "char *" to "constant array of char".
At this point, I am fairly certain the front-end is correct. Unfortunately, the back-end is still unhappy.
That said, I've commented out the two lines in globalinit.c that are causing problems.
Chris, please have a look...thanks!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44823 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Sema/SemaDecl.cpp')
-rw-r--r-- | Sema/SemaDecl.cpp | 4 |
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; } } |