ObjCBoolLiterals (__objc_yes/__objc_no) behave like C++ booleans (true/false). They are NOT objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152564 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jordy Rose 2012-03-12 17:53:02 +00:00
parent 40a777a157
commit d8b5ca1427
2 changed files with 2 additions and 2 deletions

View File

@ -2131,7 +2131,6 @@ Expr::CanThrowResult Expr::CanThrow(ASTContext &C) const {
// potentially throwing unless we decide to close off that
// possibility.
case ObjCArrayLiteralClass:
case ObjCBoolLiteralExprClass:
case ObjCDictionaryLiteralClass:
case ObjCNumericLiteralClass:
return CT_Can;
@ -2231,6 +2230,7 @@ Expr::CanThrowResult Expr::CanThrow(ASTContext &C) const {
case IntegerLiteralClass:
case ObjCEncodeExprClass:
case ObjCStringLiteralClass:
case ObjCBoolLiteralExprClass:
case OpaqueValueExprClass:
case PredefinedExprClass:
case SizeOfPackExprClass:

View File

@ -8294,7 +8294,7 @@ TreeTransform<Derived>::TransformObjCStringLiteral(ObjCStringLiteral *E) {
template<typename Derived>
ExprResult
TreeTransform<Derived>::TransformObjCBoolLiteralExpr(ObjCBoolLiteralExpr *E) {
return SemaRef.MaybeBindToTemporary(E);
return SemaRef.Owned(E);
}
template<typename Derived>