}
StringLiteral *Sema::IsStringLiteralInit(Expr *Init, QualType DeclType) {
- const ArrayType *AT = Context.getAsArrayType(DeclType);
- if (AT && AT->getElementType()->isCharType()) {
- return dyn_cast<StringLiteral>(Init->IgnoreParens());
- }
+ if (const ArrayType *AT = Context.getAsArrayType(DeclType))
+ if (AT->getElementType()->isCharType())
+ return dyn_cast<StringLiteral>(Init->IgnoreParens());
return 0;
}
CheckArithmeticConstantExpression(ASE->getIdx());
}
case Expr::StringLiteralClass:
+ case Expr::ObjCEncodeExprClass:
case Expr::PredefinedExprClass:
return false;
case Expr::UnaryOperatorClass: {
case Expr::ParenExprClass:
return CheckAddressConstantExpression(cast<ParenExpr>(Init)->getSubExpr());
case Expr::StringLiteralClass:
+ case Expr::ObjCEncodeExprClass:
case Expr::ObjCStringLiteralClass:
return false;
case Expr::CallExprClass:
}
bool Sema::CheckForConstantInitializer(Expr *Init, QualType DclT) {
- if (Init->isConstantInitializer(Context)) {
+ if (Init->isConstantInitializer(Context))
return false;
- }
InitializerElementNotConstant(Init);
return true;