diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-11-12 16:49:45 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-11-12 16:49:45 +0000 |
commit | 6051c8d344cc15d41bcabb49862d1bb3b92c2934 (patch) | |
tree | da31f4f4e55fa24f98354ef7658d8d7c632b6121 /clang | |
parent | a70ad93f8a487fded82f334c34604b71a8dcff2d (diff) | |
download | bcm5719-llvm-6051c8d344cc15d41bcabb49862d1bb3b92c2934.tar.gz bcm5719-llvm-6051c8d344cc15d41bcabb49862d1bb3b92c2934.zip |
Give CanQual<T> an implicit conversion to bool, so that it can be used
in "if" statements like:
if (CanQual<ReferenceType> RefType = T.getAs<ReferenceType>())
Thanks to Clang for pointing out this mistake :)
llvm-svn: 86995
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/AST/CanonicalType.h | 3 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/clang/include/clang/AST/CanonicalType.h b/clang/include/clang/AST/CanonicalType.h index a7750517090..a53f2f48fd2 100644 --- a/clang/include/clang/AST/CanonicalType.h +++ b/clang/include/clang/AST/CanonicalType.h @@ -71,6 +71,9 @@ public: /// \brief Implicit conversion to a qualified type. operator QualType() const { return Stored; } + /// \brief Implicit conversion to bool. + operator bool() const { return !isNull(); } + bool isNull() const { return Stored.isNull(); } diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index d094ea4b0fa..84934f5baf8 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -4014,7 +4014,7 @@ bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { if (!ResultTy->isDependentType() && ResultTy != Context.VoidPtrTy) return Diag(FnDecl->getLocation(), diag::err_operator_new_result_type) << FnDecl->getDeclName() - << Context.VoidPtrTy; + << static_cast<QualType>(Context.VoidPtrTy); return ret; } |