Switch __is_scalar to use the isScalarType predicate rather than

duplicating its logic.

llvm-svn: 130654
This commit is contained in:
Chandler Carruth 2011-05-01 09:29:55 +00:00
parent c5276e584e
commit 7ba7bd388b
1 changed files with 1 additions and 6 deletions

View File

@ -2507,12 +2507,7 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, UnaryTypeTrait UTT,
// !__is_reference(T) && !__is_function(T) && !__is_void(T). // !__is_reference(T) && !__is_function(T) && !__is_void(T).
return ! (T->isReferenceType() || T->isFunctionType() || T->isVoidType()); return ! (T->isReferenceType() || T->isFunctionType() || T->isVoidType());
case UTT_IsScalar: case UTT_IsScalar:
// Scalar type is defined in Section 3.9 p10 of the Working Draft. return T->isScalarType();
// Essentially:
// __is_arithmetic( T ) || __is_enumeration(T) ||
// __is_pointer(T) || __is_member_pointer(T)
return (T->isArithmeticType() || T->isEnumeralType() ||
T->isPointerType() || T->isMemberPointerType());
case UTT_IsCompound: case UTT_IsCompound:
return ! (T->isVoidType() || T->isArithmeticType()) || T->isEnumeralType(); return ! (T->isVoidType() || T->isArithmeticType()) || T->isEnumeralType();
case UTT_IsMemberPointer: case UTT_IsMemberPointer: