forked from OSchip/llvm-project
4086a13df8
We need an efficient mechanism to determine whether a defaulted default constructor is constexpr, in order to determine whether a class is a literal type, so keep the incrementally-built form on CXXRecordDecl. Remove the on-demand computation of same, so that we only have one method for determining whether a default constructor is constexpr. This doesn't affect correctness, since default constructor lookup is much simpler than selecting a constructor for copying or moving. We don't need a corresponding mechanism for defaulted copy or move constructors, since they can't affect whether a type is a literal type. Conversely, checking whether such functions are constexpr can require non-trivial effort, so we defer such checks until the copy or move constructor is required. Thus we now only compute whether a copy or move constructor is constexpr on demand, and only compute whether a default constructor is constexpr in advance. This is unfortunate, but seems like the best solution. llvm-svn: 158290 |
||
---|---|---|
.. | ||
ASTCommon.cpp | ||
ASTCommon.h | ||
ASTReader.cpp | ||
ASTReaderDecl.cpp | ||
ASTReaderInternals.h | ||
ASTReaderStmt.cpp | ||
ASTWriter.cpp | ||
ASTWriterDecl.cpp | ||
ASTWriterStmt.cpp | ||
CMakeLists.txt | ||
GeneratePCH.cpp | ||
Makefile | ||
Module.cpp | ||
ModuleManager.cpp |