aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-05-01 07:23:14 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-05-01 07:23:14 +0000
commit98fa94d2564057555c4a12e8737b8371700cf6e4 (patch)
treed45efa5321af89ff7fb5962c81850ca97501da41
parent059ce0d92eb5a7da900ae735dc0a2ea3d64f4b0b (diff)
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
-rw-r--r--include/clang/Basic/TypeTraits.h2
-rw-r--r--lib/AST/StmtPrinter.cpp2
-rw-r--r--lib/Parse/ParseExprCXX.cpp2
-rw-r--r--lib/Sema/SemaExprCXX.cpp5
4 files changed, 0 insertions, 11 deletions
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