summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/AST/ExprCXX.h13
-rw-r--r--clang/include/clang/Frontend/PCHBitCodes.h6
-rw-r--r--clang/lib/Frontend/PCHReaderStmt.cpp21
-rw-r--r--clang/lib/Frontend/PCHWriter.cpp9
-rw-r--r--clang/lib/Frontend/PCHWriterStmt.cpp15
-rw-r--r--clang/test/PCH/cxx_exprs.cpp15
-rw-r--r--clang/test/PCH/cxx_exprs.h18
7 files changed, 9 insertions, 88 deletions
diff --git a/clang/include/clang/AST/ExprCXX.h b/clang/include/clang/AST/ExprCXX.h
index 6567b14d6ce..76ef02df4be 100644
--- a/clang/include/clang/AST/ExprCXX.h
+++ b/clang/include/clang/AST/ExprCXX.h
@@ -241,17 +241,10 @@ public:
CXXBoolLiteralExpr(bool val, QualType Ty, SourceLocation l) :
Expr(CXXBoolLiteralExprClass, Ty, false, false), Value(val), Loc(l) {}
- explicit CXXBoolLiteralExpr(EmptyShell Empty)
- : Expr(CXXBoolLiteralExprClass, Empty) { }
-
bool getValue() const { return Value; }
- void setValue(bool V) { Value = V; }
virtual SourceRange getSourceRange() const { return SourceRange(Loc); }
- SourceLocation getLocation() const { return Loc; }
- void setLocation(SourceLocation L) { Loc = L; }
-
static bool classof(const Stmt *T) {
return T->getStmtClass() == CXXBoolLiteralExprClass;
}
@@ -269,14 +262,8 @@ public:
CXXNullPtrLiteralExpr(QualType Ty, SourceLocation l) :
Expr(CXXNullPtrLiteralExprClass, Ty, false, false), Loc(l) {}
- explicit CXXNullPtrLiteralExpr(EmptyShell Empty)
- : Expr(CXXNullPtrLiteralExprClass, Empty) { }
-
virtual SourceRange getSourceRange() const { return SourceRange(Loc); }
- SourceLocation getLocation() const { return Loc; }
- void setLocation(SourceLocation L) { Loc = L; }
-
static bool classof(const Stmt *T) {
return T->getStmtClass() == CXXNullPtrLiteralExprClass;
}
diff --git a/clang/include/clang/Frontend/PCHBitCodes.h b/clang/include/clang/Frontend/PCHBitCodes.h
index 578ce2a9e1b..1a9f4ceab93 100644
--- a/clang/include/clang/Frontend/PCHBitCodes.h
+++ b/clang/include/clang/Frontend/PCHBitCodes.h
@@ -686,11 +686,7 @@ namespace clang {
// \brief A CXXConstCastExpr record.
EXPR_CXX_CONST_CAST,
// \brief A CXXFunctionalCastExpr record.
- EXPR_CXX_FUNCTIONAL_CAST,
- // \brief A CXXBoolLiteralExpr record.
- EXPR_CXX_BOOL_LITERAL,
- // \brief A CXXNullPtrLiteralExpr record.
- EXPR_CXX_NULL_PTR_LITERAL
+ EXPR_CXX_FUNCTIONAL_CAST
};
/// \brief The kinds of designators that can occur in a
diff --git a/clang/lib/Frontend/PCHReaderStmt.cpp b/clang/lib/Frontend/PCHReaderStmt.cpp
index d123694d699..aa80b362a5f 100644
--- a/clang/lib/Frontend/PCHReaderStmt.cpp
+++ b/clang/lib/Frontend/PCHReaderStmt.cpp
@@ -123,8 +123,6 @@ namespace {
unsigned VisitCXXReinterpretCastExpr(CXXReinterpretCastExpr *E);
unsigned VisitCXXConstCastExpr(CXXConstCastExpr *E);
unsigned VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E);
- unsigned VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E);
- unsigned VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E);
};
}
@@ -908,19 +906,6 @@ unsigned PCHStmtReader::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E) {
return num;
}
-unsigned PCHStmtReader::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E) {
- VisitExpr(E);
- E->setValue(Record[Idx++]);
- E->setLocation(SourceLocation::getFromRawEncoding(Record[Idx++]));
- return 0;
-}
-
-unsigned PCHStmtReader::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E) {
- VisitExpr(E);
- E->setLocation(SourceLocation::getFromRawEncoding(Record[Idx++]));
- return 0;
-}
-
// Within the bitstream, expressions are stored in Reverse Polish
// Notation, with each of the subexpressions preceding the
// expression they are stored in. To evaluate expressions, we
@@ -1250,13 +1235,7 @@ Stmt *PCHReader::ReadStmt(llvm::BitstreamCursor &Cursor) {
S = new (Context) CXXFunctionalCastExpr(Empty);
break;
- case pch::EXPR_CXX_BOOL_LITERAL:
- S = new (Context) CXXBoolLiteralExpr(Empty);
- break;
- case pch::EXPR_CXX_NULL_PTR_LITERAL:
- S = new (Context) CXXNullPtrLiteralExpr(Empty);
- break;
}
// We hit a STMT_STOP, so we're done with this expression.
diff --git a/clang/lib/Frontend/PCHWriter.cpp b/clang/lib/Frontend/PCHWriter.cpp
index 5085cf43d02..a87b8cde2ca 100644
--- a/clang/lib/Frontend/PCHWriter.cpp
+++ b/clang/lib/Frontend/PCHWriter.cpp
@@ -513,15 +513,6 @@ static void AddStmtsExprs(llvm::BitstreamWriter &Stream,
RECORD(STMT_OBJC_AT_TRY);
RECORD(STMT_OBJC_AT_SYNCHRONIZED);
RECORD(STMT_OBJC_AT_THROW);
- RECORD(EXPR_CXX_OPERATOR_CALL);
- RECORD(EXPR_CXX_CONSTRUCT);
- RECORD(EXPR_CXX_STATIC_CAST);
- RECORD(EXPR_CXX_DYNAMIC_CAST);
- RECORD(EXPR_CXX_REINTERPRET_CAST);
- RECORD(EXPR_CXX_CONST_CAST);
- RECORD(EXPR_CXX_FUNCTIONAL_CAST);
- RECORD(EXPR_CXX_BOOL_LITERAL);
- RECORD(EXPR_CXX_NULL_PTR_LITERAL);
#undef RECORD
}
diff --git a/clang/lib/Frontend/PCHWriterStmt.cpp b/clang/lib/Frontend/PCHWriterStmt.cpp
index a8cc9d6f459..13ca8cdd9f5 100644
--- a/clang/lib/Frontend/PCHWriterStmt.cpp
+++ b/clang/lib/Frontend/PCHWriterStmt.cpp
@@ -118,8 +118,6 @@ namespace {
void VisitCXXReinterpretCastExpr(CXXReinterpretCastExpr *E);
void VisitCXXConstCastExpr(CXXConstCastExpr *E);
void VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E);
- void VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E);
- void VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E);
};
}
@@ -836,19 +834,6 @@ void PCHStmtWriter::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E) {
Code = pch::EXPR_CXX_FUNCTIONAL_CAST;
}
-void PCHStmtWriter::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E) {
- VisitExpr(E);
- Record.push_back(E->getValue());
- Writer.AddSourceLocation(E->getLocation(), Record);
- Code = pch::EXPR_CXX_BOOL_LITERAL;
-}
-
-void PCHStmtWriter::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E) {
- VisitExpr(E);
- Writer.AddSourceLocation(E->getLocation(), Record);
- Code = pch::EXPR_CXX_NULL_PTR_LITERAL;
-}
-
//===----------------------------------------------------------------------===//
// PCHWriter Implementation
//===----------------------------------------------------------------------===//
diff --git a/clang/test/PCH/cxx_exprs.cpp b/clang/test/PCH/cxx_exprs.cpp
index 0f0fe88dc54..51269d57b14 100644
--- a/clang/test/PCH/cxx_exprs.cpp
+++ b/clang/test/PCH/cxx_exprs.cpp
@@ -1,14 +1,13 @@
// Test this without pch.
-// RUN: %clang_cc1 -include %S/cxx_exprs.h -std=c++0x -fsyntax-only -verify %s
+// RUN: %clang_cc1 -include %S/cxx_exprs.h -fsyntax-only -verify %s
// Test with pch.
-// RUN: %clang_cc1 -x c++-header -std=c++0x -emit-pch -o %t %S/cxx_exprs.h
-// RUN: %clang_cc1 -std=c++0x -include-pch %t -fsyntax-only -verify %s
+// RUN: %clang_cc1 -x c++-header -emit-pch -o %t %S/cxx_exprs.h
+// RUN: %clang_cc1 -include-pch %t -fsyntax-only -verify %s
int integer;
double floating;
char character;
-bool boolean;
// CXXStaticCastExpr
static_cast_result void_ptr = &integer;
@@ -25,11 +24,3 @@ const_cast_result char_ptr = &character;
// CXXFunctionalCastExpr
functional_cast_result *double_ptr = &floating;
-
-// CXXBoolLiteralExpr
-bool_literal_result *bool_ptr = &boolean;
-static_assert(true_value, "true_value is true");
-static_assert(!false_value, "false_value is false");
-
-// CXXNullPtrLiteralExpr
-cxx_null_ptr_result null_ptr = nullptr;
diff --git a/clang/test/PCH/cxx_exprs.h b/clang/test/PCH/cxx_exprs.h
index a871aa201f1..b6494284941 100644
--- a/clang/test/PCH/cxx_exprs.h
+++ b/clang/test/PCH/cxx_exprs.h
@@ -1,29 +1,21 @@
// Header for PCH test cxx_exprs.cpp
// CXXStaticCastExpr
-typedef __typeof__(static_cast<void *>(0)) static_cast_result;
+typedef typeof(static_cast<void *>(0)) static_cast_result;
// CXXDynamicCastExpr
struct Base { virtual void f(); };
struct Derived : Base { };
Base *base_ptr;
-typedef __typeof__(dynamic_cast<Derived *>(base_ptr)) dynamic_cast_result;
+typedef typeof(dynamic_cast<Derived *>(base_ptr)) dynamic_cast_result;
// CXXReinterpretCastExpr
-typedef __typeof__(reinterpret_cast<void *>(0)) reinterpret_cast_result;
+typedef typeof(reinterpret_cast<void *>(0)) reinterpret_cast_result;
// CXXConstCastExpr
const char *const_char_ptr_value;
-typedef __typeof__(const_cast<char *>(const_char_ptr_value)) const_cast_result;
+typedef typeof(const_cast<char *>(const_char_ptr_value)) const_cast_result;
// CXXFunctionalCastExpr
int int_value;
-typedef __typeof__(double(int_value)) functional_cast_result;
-
-// CXXBoolLiteralExpr
-typedef __typeof__(true) bool_literal_result;
-const bool true_value = true;
-const bool false_value = false;
-
-// CXXNullPtrLiteralExpr
-typedef __typeof__(nullptr) cxx_null_ptr_result;
+typedef typeof(double(int_value)) functional_cast_result;
OpenPOWER on IntegriCloud