diff options
-rw-r--r-- | clang/include/clang/AST/ExprCXX.h | 13 | ||||
-rw-r--r-- | clang/include/clang/Frontend/PCHBitCodes.h | 6 | ||||
-rw-r--r-- | clang/lib/Frontend/PCHReaderStmt.cpp | 21 | ||||
-rw-r--r-- | clang/lib/Frontend/PCHWriter.cpp | 9 | ||||
-rw-r--r-- | clang/lib/Frontend/PCHWriterStmt.cpp | 15 | ||||
-rw-r--r-- | clang/test/PCH/cxx_exprs.cpp | 15 | ||||
-rw-r--r-- | clang/test/PCH/cxx_exprs.h | 18 |
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; |