llvm-project/clang/lib/AST
David Majnemer 413111952a [MS ABI] Don't crash while mangling recursive lambdas
We might get into bad situations where we try to embed the signature of
an inner lambda into an outer lambda which cannot work: the inner lambda
wants to embed the name of the outer lambda!

Instead, omit the return type for lambdas.

This fixes PR26105.

N.B.  While we are here, make lambdas nested within functions use an
artificial scope so that they can get demangled.

llvm-svn: 258003
2016-01-17 07:09:24 +00:00
..
APValue.cpp Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created. 2014-08-27 06:28:36 +00:00
ASTConsumer.cpp Introduce a PCHContainerOperations interface (NFC). 2015-06-20 18:53:08 +00:00
ASTContext.cpp [libclang] Introduce APIs for evaluating a cursor and checking if a macro is builtin/function. 2016-01-16 00:20:02 +00:00
ASTDiagnostic.cpp Fix a -Wparentheses warning in ASTDiagnostic.cpp. 2016-01-15 05:57:41 +00:00
ASTDumper.cpp Improve AST dumping: 2016-01-12 21:59:26 +00:00
ASTImporter.cpp [OpenCL] Pipe type support 2016-01-09 12:53:17 +00:00
ASTTypeTraits.cpp Fix bug in DynTypedMatcher::constructVariadic() that would cause false negatives. 2014-10-06 13:14:30 +00:00
AttrImpl.cpp Devirtualize Attr and all subclasses. 2015-03-19 16:06:49 +00:00
CMakeLists.txt Move functions declared in Stmt{ObjC,CXX}.h and OpenMPClause.h into 2015-10-02 13:41:04 +00:00
CXXABI.h [MS ABI] Correctly mangle classes without names for linkage purposes 2015-08-31 18:48:39 +00:00
CXXInheritance.cpp unique_ptrify CXXBasePaths::DeclsFound & remove the then-unnecessary user-defined dtor 2015-08-18 23:56:00 +00:00
Comment.cpp Use llvm::makeArrayRef instead of explicitly calling ArrayRef constructor and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>. 2014-08-30 16:55:39 +00:00
CommentBriefParser.cpp
CommentCommandTraits.cpp Fix for PR21254 - Assertion in comment parser 2014-10-15 16:18:20 +00:00
CommentLexer.cpp Comment parsing: fix an assertion failure on a verbatim block terminated with "**/" 2015-04-15 23:45:43 +00:00
CommentParser.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
CommentSema.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
Decl.cpp Fix infinite recursion for invalid declaration, by Dmitry Polukhin 2016-01-12 09:01:25 +00:00
DeclBase.cpp PR26048, PR26050: put non-type template parameters and indirect field decls 2016-01-06 22:49:11 +00:00
DeclCXX.cpp [ptr-traits] Move methods manipulating PointerUnions, DenseMap pointer 2015-12-30 03:24:14 +00:00
DeclFriend.cpp [TrailingObjects] Convert Decl* classes. 2015-12-29 22:13:13 +00:00
DeclGroup.cpp [TrailingObjects] Convert Decl* classes. 2015-12-29 22:13:13 +00:00
DeclObjC.cpp [TrailingObjects] Convert Decl* classes. 2015-12-29 22:13:13 +00:00
DeclOpenMP.cpp [TrailingObjects] Convert Decl* classes. 2015-12-29 22:13:13 +00:00
DeclPrinter.cpp [ATTR] Automatic line feed after pragma-like attribute. 2015-10-12 06:59:48 +00:00
DeclTemplate.cpp ArrayRef-ize TemplateParameterList. NFC 2015-12-27 07:16:27 +00:00
DeclarationName.cpp When pretty-printing a C++11 literal operator, don't insert whitespace between 2015-10-08 00:17:59 +00:00
Expr.cpp [CUDA] Warn undeclared identifiers in CUDA kernel calls 2016-01-14 23:31:30 +00:00
ExprCXX.cpp Only instantiate a default argument once. 2016-01-06 22:34:54 +00:00
ExprClassification.cpp [MSVC] 'property' with an empty array in array subscript expression. 2015-11-25 12:01:00 +00:00
ExprConstant.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
ExprObjC.cpp [TrailingObjects] Fix bug in "Convert classes in ExprObjC.h" 2015-12-31 06:01:19 +00:00
ExternalASTSource.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00
InheritViz.cpp InheritViz: Hide implementation details 2015-03-09 15:03:20 +00:00
ItaniumCXXABI.cpp [MS ABI] Correctly mangle classes without names for linkage purposes 2015-08-31 18:48:39 +00:00
ItaniumMangle.cpp [OpenCL] Pipe type support 2016-01-09 12:53:17 +00:00
Makefile
Mangle.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
MicrosoftCXXABI.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
MicrosoftMangle.cpp [MS ABI] Don't crash while mangling recursive lambdas 2016-01-17 07:09:24 +00:00
NSAPI.cpp [OpenCL] Add new types for OpenCL 2.0. 2015-09-15 11:18:52 +00:00
NestedNameSpecifier.cpp Constify NestedNameSpecifier::dump and add a no-argument dump function suitable for calling from a debugger. 2015-12-27 14:34:22 +00:00
OpenMPClause.cpp [TrailingObjects] Convert classes in OpenMPClause.h 2016-01-01 00:38:24 +00:00
ParentMap.cpp Switch users of the 'for (StmtRange range = stmt->children(); range; ++range)‘ pattern to range for loops. 2015-07-02 21:03:14 +00:00
RawCommentList.cpp Allow any comment to be a trailing comment when -fparse-all-comments is on. 2015-07-15 19:13:39 +00:00
RecordLayout.cpp CXXInfo memory should be released after calling the destructor 2014-05-24 07:19:25 +00:00
RecordLayoutBuilder.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
SelectorLocationsKind.cpp
Stmt.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
StmtCXX.cpp [coroutines] Creation of promise object, lookup of operator co_await, building 2015-10-27 06:02:45 +00:00
StmtIterator.cpp [ptr-traits] Stop using two bogus types as stand-ins for flags 2015-12-30 02:51:00 +00:00
StmtObjC.cpp Move functions declared in Stmt{ObjC,CXX}.h and OpenMPClause.h into 2015-10-02 13:41:04 +00:00
StmtOpenMP.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
StmtPrinter.cpp Add OpenMP dist_schedule clause to distribute directive and related regression tests. 2016-01-15 18:50:31 +00:00
StmtProfile.cpp Add OpenMP dist_schedule clause to distribute directive and related regression tests. 2016-01-15 18:50:31 +00:00
StmtViz.cpp
TemplateBase.cpp [TrailingObjects] Convert AST classes that had a ASTTemplateKWAndArgsInfo. 2015-12-29 18:15:14 +00:00
TemplateName.cpp [ptr-traits] Some compilers (older Clang? unsure) on build bots need 2015-12-30 06:21:02 +00:00
Type.cpp [OpenCL] Pipe type support 2016-01-09 12:53:17 +00:00
TypeLoc.cpp Update for LLVM function name change. 2016-01-14 21:00:27 +00:00
TypePrinter.cpp [OpenCL] Pipe type support 2016-01-09 12:53:17 +00:00
VTTBuilder.cpp Update for LLVM API change to make Small(Ptr)Set::insert return pair<iterator, bool> as per the C++ standard's associative container concept. 2014-11-19 07:49:47 +00:00
VTableBuilder.cpp [MS ABI] Let arbitrary entities participate in vftable ordering 2015-11-19 00:03:54 +00:00