hanchenye-llvm-project/clang/lib/AST
Douglas Gregor 680e9e018d Improve our handling of lambda expressions that occur within default
arguments. There are two aspects to this:

  - Make sure that when marking the declarations referenced in a
  default argument, we don't try to mark local variables, both because
  it's a waste of time and because the semantics are wrong: we're not
  in a place where we could capture these variables again even if it
  did make sense.
  - When a lambda expression occurs in a default argument of a
  function template, make sure that the corresponding closure type is
  considered dependent, so that it will get properly instantiated. The
  second bit is a bit of a hack; to fix it properly, we may have to
  rearchitect our handling of default arguments, parsing them only
  after creating the function definition. However, I'd like to
  separate that work from the lambdas work.

llvm-svn: 151076
2012-02-21 19:11:17 +00:00
..
APValue.cpp Implement DR1454. This allows all intermediate results in constant expressions 2012-02-15 02:18:13 +00:00
ASTConsumer.cpp Change ASTConsumer::HandleTopLevelDecl to return true for the parser to continue 2011-11-18 00:26:59 +00:00
ASTContext.cpp Basic support for name mangling of C++11 lambda expressions. Because 2012-02-20 19:44:39 +00:00
ASTDiagnostic.cpp Change the checks in the type aka printing. A confusing case where the string 2011-11-14 19:39:25 +00:00
ASTImporter.cpp modern objc translator. Finish off first cut of the 2012-02-20 20:09:20 +00:00
AttrImpl.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
CMakeLists.txt Basic support for name mangling of C++11 lambda expressions. Because 2012-02-20 19:44:39 +00:00
CXXABI.h Move isNearlyEmpty out into the ASTContext so it can be called from CodeGen as well. 2010-11-25 01:51:53 +00:00
CXXInheritance.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
Decl.cpp Implement non-internal linkage for lambda closure types that need a 2012-02-21 04:17:39 +00:00
DeclBase.cpp Improve our handling of lambda expressions that occur within default 2012-02-21 19:11:17 +00:00
DeclCXX.cpp Improve our handling of lambda expressions that occur within default 2012-02-21 19:11:17 +00:00
DeclFriend.cpp When creating declarations that are deserialized from an module file, 2012-01-05 21:55:30 +00:00
DeclGroup.cpp I lied. Kill off a few more Destroy methods 2010-07-25 18:32:30 +00:00
DeclObjC.cpp modern objc translator. Finish off first cut of the 2012-02-20 20:09:20 +00:00
DeclPrinter.cpp Represent C++ direct initializers as ParenListExprs before semantic analysis 2012-02-11 23:51:47 +00:00
DeclTemplate.cpp De-virtualize getPreviousDecl() and getMostRecentDecl() when we know 2012-01-14 16:38:05 +00:00
DeclarationName.cpp Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. 2012-02-07 22:29:24 +00:00
DumpXML.cpp Represent C++ direct initializers as ParenListExprs before semantic analysis 2012-02-11 23:51:47 +00:00
Expr.cpp ObjCMessageExpr: Don't leave SelLocsKind uninitialized when the send is implicit. 2012-02-20 00:20:48 +00:00
ExprCXX.cpp Implement non-internal linkage for lambda closure types that need a 2012-02-21 04:17:39 +00:00
ExprClassification.cpp Introduce basic ASTs for lambda expressions. This covers: 2012-02-07 10:09:13 +00:00
ExprConstant.cpp Refuse to compile global std::initializer_lists instead of doing completely the wrong thing. 2012-02-19 14:53:49 +00:00
ExternalASTSource.cpp Don't force the complete deserialization of the visible-declarations 2011-08-24 21:56:08 +00:00
InheritViz.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
ItaniumCXXABI.cpp Extend the ASTContext constructor to delay the initialization of 2011-09-02 00:18:52 +00:00
ItaniumMangle.cpp Implement non-internal linkage for lambda closure types that need a 2012-02-21 04:17:39 +00:00
LambdaMangleContext.cpp Basic support for name mangling of C++11 lambda expressions. Because 2012-02-20 19:44:39 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
Mangle.cpp Switch the ObjC*Decl raw_stream overloads to take a reference, for consistency with NamedDecls. 2012-02-07 11:57:45 +00:00
MicrosoftCXXABI.cpp Extend the ASTContext constructor to delay the initialization of 2011-09-02 00:18:52 +00:00
MicrosoftMangle.cpp Add Microsoft mangling of constructors and destructors. Patch by Dmitry! 2011-12-01 09:55:00 +00:00
NestedNameSpecifier.cpp Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. 2012-02-07 22:29:24 +00:00
ParentMap.cpp Fix crash in analyzer diagnostic generation involving subexpressions of OpaqueValueExpr not appearing in the ParentMap. Fixes <rdar://problem/10797980>. 2012-02-18 22:02:57 +00:00
RecordLayout.cpp More ASTRecordLayout changes for MS ABI; based on patch by r4start. 2011-10-21 22:49:56 +00:00
RecordLayoutBuilder.cpp If a struct needs to be laid out, and it has not 2012-02-08 00:04:52 +00:00
SelectorLocationsKind.cpp Fix crash when using archaic protocol, rdar://10238337 2011-10-05 21:28:06 +00:00
Stmt.cpp More dead code removal (using -Wunreachable-code) 2012-01-20 21:50:17 +00:00
StmtDumper.cpp Print NamedDecls directly to a raw_ostream where possible. 2012-02-07 11:57:57 +00:00
StmtIterator.cpp Support for C++11 (non-template) alias declarations. 2011-04-15 14:24:37 +00:00
StmtPrinter.cpp Revert "Revert "Make CXXNewExpr contain only a single initialier, and not hold the used constructor itself."" 2012-02-16 12:22:20 +00:00
StmtProfile.cpp Revert "Revert "Make CXXNewExpr contain only a single initialier, and not hold the used constructor itself."" 2012-02-16 12:22:20 +00:00
StmtViz.cpp
TemplateBase.cpp Print NamedDecls directly to a raw_ostream where possible. 2012-02-07 11:57:57 +00:00
TemplateName.cpp Print NamedDecls directly to a raw_ostream where possible. 2012-02-07 11:57:57 +00:00
Type.cpp Remove dead code. 2012-02-19 11:57:29 +00:00
TypeLoc.cpp Added source location for the template keyword in DependentTemplateSpecializationTypeLoc nodes (DTSTLoc). 2012-02-06 22:45:07 +00:00
TypePrinter.cpp When overload resolution picks an implicitly-deleted special member 2012-02-15 19:33:52 +00:00
VTTBuilder.cpp Move VTT builder to AST 2011-09-26 01:56:24 +00:00
VTableBuilder.cpp Make format string 64 bit safe. 2011-11-06 09:34:11 +00:00