From e00d5c00f35163308a18ec1d3d2b9dfa1ecaf234 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 18 Feb 2009 19:59:32 +0000 Subject: [PATCH] Add Type::isSpecificBuiltinType as a shortcut. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64946 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/Type.h | 15 +++++++++++---- lib/AST/ASTContext.cpp | 5 ++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h index fdf79dbd37..9db22fc836 100644 --- a/include/clang/AST/Type.h +++ b/include/clang/AST/Type.h @@ -321,6 +321,9 @@ public: /// Helper methods to distinguish type categories. All type predicates /// operate on the canonical type, ignoring typedefs and qualifiers. + + /// isSpecificBuiltinType - Test for a particular builtin type. + bool isSpecificBuiltinType(unsigned K) const; /// isIntegerType() does *not* include complex integers (a GCC extension). /// isComplexIntegerType() can be used to test for complex integers. @@ -1876,11 +1879,15 @@ inline bool Type::isTemplateTypeParmType() const { return isa(CanonicalType.getUnqualifiedType()); } -inline bool Type::isOverloadType() const { +inline bool Type::isSpecificBuiltinType(unsigned K) const { if (const BuiltinType *BT = getAsBuiltinType()) - return BT->getKind() == BuiltinType::Overload; - else - return false; + if (BT->getKind() == (BuiltinType::Kind) K) + return true; + return false; +} + +inline bool Type::isOverloadType() const { + return isSpecificBuiltinType(BuiltinType::Overload); } /// Insertion operator for diagnostics. This allows sending QualType's into a diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 6b49b85c24..9198bf71cd 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -468,9 +468,8 @@ unsigned ASTContext::getPreferredTypeAlign(const Type *T) { unsigned ABIAlign = getTypeAlign(T); // Doubles should be naturally aligned if possible. - if (const BuiltinType *BT = dyn_cast(getCanonicalType(T))) - if (BT->getKind() == BuiltinType::Double) - return std::max(ABIAlign, 64U); + if (T->isSpecificBuiltinType(BuiltinType::Double)) + return std::max(ABIAlign, 64U); return ABIAlign; } -- 2.50.1