aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/SemaDecl.cpp2
-rw-r--r--test/Sema/init.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index e766ca06a5..0fb939e23a 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -1031,7 +1031,7 @@ bool Sema::CheckStringLiteralInit(StringLiteral *strLiteral, QualType &DeclT) {
StringLiteral *Sema::IsStringLiteralInit(Expr *Init, QualType DeclType) {
const ArrayType *AT = Context.getAsArrayType(DeclType);
if (AT && AT->getElementType()->isCharType()) {
- return dyn_cast<StringLiteral>(Init);
+ return dyn_cast<StringLiteral>(Init->IgnoreParens());
}
return 0;
}
diff --git a/test/Sema/init.c b/test/Sema/init.c
index edaaf64b8b..9f0867869a 100644
--- a/test/Sema/init.c
+++ b/test/Sema/init.c
@@ -78,3 +78,5 @@ struct s1 s2 = {
.b = bogus // expected-error {{use of undeclared identifier 'bogus'}}
}
+// PR3382
+char t[] = ("Hello");