llvm-project/clang/lib/AST
Richard Smith d0b4dd656d constexpr handling improvements. Produce detailed diagnostics when a 'constexpr'
variable is initialized by a non-constant expression, and pass in the variable
being declared so that earlier-initialized fields' values can be used.

Rearrange VarDecl init evaluation to make this possible, and in so doing fix a
long-standing issue in our C++ constant expression handling, where we would
mishandle cases like:

  extern const int a;
  const int n = a;
  const int a = 5;
  int arr[n];

Here, n is not initialized by a constant expression, so can't be used in an ICE,
even though the initialization expression would be an ICE if it appeared later
in the TU. This requires computing whether the initializer is an ICE eagerly,
and saving that information in PCH files.

llvm-svn: 146856
2011-12-19 06:19:21 +00:00
..
APValue.cpp Add missing flush call. This is an attempt to fix a broken Windows buildbot. 2011-12-16 22:12:23 +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 If there is a definition of an ObjCInterfaceDecl, make it the Decl returned from the corresponding ObjCInterfaceType 2011-12-16 16:34:57 +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 constexpr handling improvements. Produce detailed diagnostics when a 'constexpr' 2011-12-19 06:19:21 +00:00
AttrImpl.cpp Generate Attr subclasses with TableGen. 2010-08-18 23:23:40 +00:00
CMakeLists.txt Allow getting all source locations of selector identifiers in a ObjCMessageExpr. 2011-10-03 06:36:51 +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 constexpr handling improvements. Produce detailed diagnostics when a 'constexpr' 2011-12-19 06:19:21 +00:00
DeclBase.cpp Introduce the core infrastructure needed to model a complete 2011-12-15 18:03:09 +00:00
DeclCXX.cpp When we notice that a member function is defined with "= delete" or "= 2011-11-07 20:56:01 +00:00
DeclFriend.cpp Support C++ friend declarations for PCH. 2010-06-29 22:47:00 +00:00
DeclGroup.cpp I lied. Kill off a few more Destroy methods 2010-07-25 18:32:30 +00:00
DeclObjC.cpp Make sure we're always setting the previous declaration of an ObjCInterfaceDecl 2011-12-16 22:37:11 +00:00
DeclPrinter.cpp Keep track of all declarations of an Objective-C class (both forward 2011-12-15 20:29:51 +00:00
DeclTemplate.cpp Fixed source range for template implicit instantiations. 2011-10-03 20:34:03 +00:00
DeclarationName.cpp Change operator<< for raw_ostream and NamedDecl to take a reference instead of a pointer. 2011-10-14 18:45:37 +00:00
DumpXML.cpp Keep track of all declarations of an Objective-C class (both forward 2011-12-15 20:29:51 +00:00
Expr.cpp Teach isConstantInitializer that numeric literals are constants, rather than 2011-12-09 06:47:34 +00:00
ExprCXX.cpp In Sema::MaybeBindToTemporary, create a CXXBindTemporaryExpr for an 2011-11-27 22:09:28 +00:00
ExprClassification.cpp Reference initialization with initializer lists. 2011-11-27 16:50:07 +00:00
ExprConstant.cpp constexpr handling improvements. Produce detailed diagnostics when a 'constexpr' 2011-12-19 06:19:21 +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 Fix mangling substitutions for address-space-qualified class 2011-12-03 18:24:43 +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 remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +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 Add a printing policy flag to suppress printing "<anonymous>::" prior 2011-11-03 00:16:13 +00:00
ParentMap.cpp [arcmt] More automatic transformations and safety improvements; rdar://9615812 : 2011-07-27 05:28:18 +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 Keep track of all declarations of an Objective-C class (both forward 2011-12-15 20:29:51 +00:00
SelectorLocationsKind.cpp Fix crash when using archaic protocol, rdar://10238337 2011-10-05 21:28:06 +00:00
Stmt.cpp Extend the Stmt AST to make it easier to look through label, default, 2011-09-10 00:02:34 +00:00
StmtDumper.cpp There's no good reason to track temporaries in ExprWithCleanups, 2011-11-10 05:35:25 +00:00
StmtIterator.cpp Support for C++11 (non-template) alias declarations. 2011-04-15 14:24:37 +00:00
StmtPrinter.cpp Implement support for the __is_final type trait, to determine whether 2011-12-03 18:14:24 +00:00
StmtProfile.cpp Change the AST representation of operations on Objective-C 2011-11-06 09:01:30 +00:00
StmtViz.cpp Adapt to the DOTGraphTraits changes in LLVM. 2009-11-30 14:16:05 +00:00
TemplateBase.cpp Removing a bunch of dead returns/breaks after llvm_unreachables. 2011-09-23 20:26:49 +00:00
TemplateName.cpp Change operator<< for raw_ostream and NamedDecl to take a reference instead of a pointer. 2011-10-14 18:45:37 +00:00
Type.cpp Keep track of all declarations of an Objective-C class (both forward 2011-12-15 20:29:51 +00:00
TypeLoc.cpp Provide better source info for template specializations with non-type arguments. 2011-11-22 20:00:10 +00:00
TypePrinter.cpp TypePrinter: print OpenCL address space names. Patch by Richard 2011-11-08 02:52:58 +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