]> granicus.if.org Git - clang/commitdiff
Remove the type traits UTT_IsLvalueExpr and UTT_IsRvalueExpr.
authorChandler Carruth <chandlerc@gmail.com>
Sun, 1 May 2011 07:23:14 +0000 (07:23 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sun, 1 May 2011 07:23:14 +0000 (07:23 +0000)
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

include/clang/Basic/TypeTraits.h
lib/AST/StmtPrinter.cpp
lib/Parse/ParseExprCXX.cpp
lib/Sema/SemaExprCXX.cpp

index cafc3878816adbe98fde8baf6f90ed246f8eb882..4a2a2c67e0eb4f916cd49d1490236b42f1b2e147 100644 (file)
@@ -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,
index fa0e091d294f30c3c19a054c5effb3b049422adb..8380e396eb9137cd1f80ec5c608b517e23e31d84 100644 (file)
@@ -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";
index ca3242ba46f1b550b50a35ea788b5c9f50e0b408..8bf6f63d3ecd2e1638439719b0da38a3cba055bf 100644 (file)
@@ -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;
index 4ade68986634331ecad3948126b6bc5821a2fc95..0b2e448e562062441d139b12f842813bcc1552d1 100644 (file)
@@ -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