diff options
author | Aleksei Sidorin <a.sidorin@samsung.com> | 2016-09-28 10:16:56 +0000 |
---|---|---|
committer | Aleksei Sidorin <a.sidorin@samsung.com> | 2016-09-28 10:16:56 +0000 |
commit | a693b37e14b4763e7ab5ce5de994ef1a8c930631 (patch) | |
tree | 694750104ed6d850a7a6014ff60d394018f24c0a /clang/test/ASTMerge/exprs.cpp | |
parent | 37d757039dc5fa3843cda5b4c1c86d842ae9443d (diff) | |
download | bcm5719-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.cpp | 45 |
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(); +} |