From: Chandler Carruth Date: Sun, 1 May 2011 07:23:14 +0000 (+0000) Subject: Remove the type traits UTT_IsLvalueExpr and UTT_IsRvalueExpr. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98fa94d2564057555c4a12e8737b8371700cf6e4;p=clang Remove the type traits UTT_IsLvalueExpr and UTT_IsRvalueExpr. As might be surmised from their names, these aren't type traits, they're expression traits. Amazingly enough, they're expression traits that we have, and fully implement. These "type" traits are even parsed from the same tokens as the expression traits. Luckily, the parser only tried the expression trait parsing for these tokens, so this was all just a pile of dead code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130643 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/TypeTraits.h b/include/clang/Basic/TypeTraits.h index cafc387881..4a2a2c67e0 100644 --- a/include/clang/Basic/TypeTraits.h +++ b/include/clang/Basic/TypeTraits.h @@ -40,7 +40,6 @@ namespace clang { UTT_IsFundamental, UTT_IsIntegral, UTT_IsLiteral, - UTT_IsLvalueExpr, UTT_IsLvalueReference, UTT_IsMemberFunctionPointer, UTT_IsMemberObjectPointer, @@ -50,7 +49,6 @@ namespace clang { UTT_IsPointer, UTT_IsPolymorphic, UTT_IsReference, - UTT_IsRvalueExpr, UTT_IsRvalueReference, UTT_IsScalar, UTT_IsSigned, diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp index fa0e091d29..8380e396eb 100644 --- a/lib/AST/StmtPrinter.cpp +++ b/lib/AST/StmtPrinter.cpp @@ -1315,7 +1315,6 @@ static const char *getTypeTraitName(UnaryTypeTrait UTT) { case UTT_IsFunction: return "__is_function"; case UTT_IsFundamental: return "__is_fundamental"; case UTT_IsIntegral: return "__is_integral"; - case UTT_IsLvalueExpr: return "__is_lvalue_expr"; case UTT_IsLvalueReference: return "__is_lvalue_reference"; case UTT_IsMemberFunctionPointer: return "__is_member_function_pointer"; case UTT_IsMemberObjectPointer: return "__is_member_object_pointer"; @@ -1325,7 +1324,6 @@ static const char *getTypeTraitName(UnaryTypeTrait UTT) { case UTT_IsPointer: return "__is_pointer"; case UTT_IsPolymorphic: return "__is_polymorphic"; case UTT_IsReference: return "__is_reference"; - case UTT_IsRvalueExpr: return "__is_rvalue_expr"; case UTT_IsRvalueReference: return "__is_rvalue_reference"; case UTT_IsScalar: return "__is_scalar"; case UTT_IsSigned: return "__is_signed"; diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp index ca3242ba46..8bf6f63d3e 100644 --- a/lib/Parse/ParseExprCXX.cpp +++ b/lib/Parse/ParseExprCXX.cpp @@ -1938,7 +1938,6 @@ static UnaryTypeTrait UnaryTypeTraitFromTokKind(tok::TokenKind kind) { case tok::kw___is_function: return UTT_IsFunction; case tok::kw___is_fundamental: return UTT_IsFundamental; case tok::kw___is_integral: return UTT_IsIntegral; - case tok::kw___is_lvalue_expr: return UTT_IsLvalueExpr; case tok::kw___is_lvalue_reference: return UTT_IsLvalueReference; case tok::kw___is_member_function_pointer: return UTT_IsMemberFunctionPointer; case tok::kw___is_member_object_pointer: return UTT_IsMemberObjectPointer; @@ -1950,7 +1949,6 @@ static UnaryTypeTrait UnaryTypeTraitFromTokKind(tok::TokenKind kind) { case tok::kw___is_pointer: return UTT_IsPointer; case tok::kw___is_polymorphic: return UTT_IsPolymorphic; case tok::kw___is_reference: return UTT_IsReference; - case tok::kw___is_rvalue_expr: return UTT_IsRvalueExpr; case tok::kw___is_rvalue_reference: return UTT_IsRvalueReference; case tok::kw___is_scalar: return UTT_IsScalar; case tok::kw___is_signed: return UTT_IsSigned; diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp index 4ade689866..0b2e448e56 100644 --- a/lib/Sema/SemaExprCXX.cpp +++ b/lib/Sema/SemaExprCXX.cpp @@ -2371,11 +2371,6 @@ static bool CheckUnaryTypeTraitTypeCompleteness(Sema &S, // these class templates. We also try to follow any GCC documented behavior // in these expressions to ensure portability of standard libraries. switch (UTT) { - // FIXME: These shouldn't be UnaryTypeTraits as they aren't traits on types. - case UTT_IsLvalueExpr: - case UTT_IsRvalueExpr: - assert(0 && "Expression traits found in type trait handling code."); - // is_complete_type somewhat obviously cannot require a complete type. case UTT_IsCompleteType: // Fallthrough