summaryrefslogtreecommitdiffstats
path: root/clang/test/ASTMerge/exprs.cpp
diff options
context:
space:
mode:
authorAleksei Sidorin <a.sidorin@samsung.com>2016-09-28 10:16:56 +0000
committerAleksei Sidorin <a.sidorin@samsung.com>2016-09-28 10:16:56 +0000
commita693b37e14b4763e7ab5ce5de994ef1a8c930631 (patch)
tree694750104ed6d850a7a6014ff60d394018f24c0a /clang/test/ASTMerge/exprs.cpp
parent37d757039dc5fa3843cda5b4c1c86d842ae9443d (diff)
downloadbcm5719-llvm-a693b37e14b4763e7ab5ce5de994ef1a8c930631.tar.gz
bcm5719-llvm-a693b37e14b4763e7ab5ce5de994ef1a8c930631.zip
[ASTImporter] Implement some expression-related AST node import (part 2)
* Some code cleanup * Add tests not present in http://reviews.llvm.org/D14286 * Integrate a test suite from Serge Pavlov (http://reviews.llvm.org/D14224) * ArrayTypeTraitExpr: serialize sub-expression to avoid keeping it undefined * Implement import of some nodes: - ArrayTypeTraitExpr - ExpressionTraitExpr - OpaqueValueExpr - ArraySubscriptExpr - ExplicitCastExpr - ImplicitValueInitExpr - OffsetOfExpr - CXXThisExpr - CXXThrowExpr - CXXNoexceptExpr - CXXDefaultArgExpr - CXXScalarValueInitExpr - CXXBindTemporaryExpr - CXXTemporaryObjectExpr - MaterializeTemporaryExpr - ExprWithCleanups - StaticAssertDecl - FriendDecl - DecayedType Differential Revision: https://reviews.llvm.org/D14326 llvm-svn: 282572
Diffstat (limited to 'clang/test/ASTMerge/exprs.cpp')
-rw-r--r--clang/test/ASTMerge/exprs.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/clang/test/ASTMerge/exprs.cpp b/clang/test/ASTMerge/exprs.cpp
new file mode 100644
index 00000000000..ba1f18b2c90
--- /dev/null
+++ b/clang/test/ASTMerge/exprs.cpp
@@ -0,0 +1,45 @@
+// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++1z -fcxx-exceptions -emit-pch -o %t.1.ast %S/Inputs/exprs3.cpp
+// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++1z -fcxx-exceptions -ast-merge %t.1.ast -fsyntax-only -verify %s
+// expected-no-diagnostics
+
+static_assert(Ch1 == 'a');
+static_assert(Ch2 == 'b');
+static_assert(Ch3 == 'c');
+
+static_assert(Ch4 == L'd');
+static_assert(Ch5 == L'e');
+static_assert(Ch6 == L'f');
+
+static_assert(C1 == 12);
+static_assert(C2 == 13);
+
+static_assert(C3 == 12);
+static_assert(C4 == 13);
+
+static_assert(C5 == 22L);
+static_assert(C6 == 23L);
+
+static_assert(C7 == 66LL);
+static_assert(C8 == 67ULL);
+
+static_assert(bval1 == true);
+static_assert(bval2 == false);
+
+static_assert(ExpressionTrait == false);
+
+static_assert(ArrayRank == 2);
+static_assert(ArrayExtent == 20);
+
+void testImport(int *x, const S1 &cs1, S1 &s1) {
+ testNewThrowDelete();
+ testArrayElement(nullptr, 12);
+ testTernaryOp(0, 1, 2);
+ testConstCast(cs1);
+ testStaticCast(s1);
+ testReinterpretCast(s1);
+ testDynamicCast(s1);
+ testScalarInit(42);
+ testOffsetOf();
+ testDefaultArg(12);
+ useTemplateType();
+}
OpenPOWER on IntegriCloud