[ASTImporter] Support LambdaExprs and improve template support

Also, a number of style and bug fixes was done:

 *  ASTImporterTest: added sanity check for source node
 *  ExternalASTMerger: better lookup for template specializations
 *  ASTImporter: don't add templated declarations into DeclContext
 *  ASTImporter: introduce a helper, ImportTemplateArgumentListInfo getting SourceLocations
 *  ASTImporter: proper set ParmVarDecls for imported FunctionProtoTypeLoc

Differential Revision: https://reviews.llvm.org/D42301

llvm-svn: 323519
This commit is contained in:
Aleksei Sidorin
2018-01-26 11:36:54 +00:00
parent 24f0fa34c2
commit 8fc8510cb8
13 changed files with 435 additions and 87 deletions

View File

@@ -0,0 +1,10 @@
// RUN: %clang_cc1 -std=c++1z -emit-pch -o %t.1.ast %S/Inputs/function-1.cpp
// RUN: %clang_cc1 -std=c++1z -ast-merge %t.1.ast -fsyntax-only %s 2>&1 | FileCheck %s
// XFAIL: *
static_assert(add(1, 2) == 5);
// FIXME: support of templated function overload is still not implemented.
static_assert(add('\1', '\2') == 3);
// CHECK-NOT: static_assert