]> granicus.if.org Git - clang/commit
Remove CXXRecordDecl flags which are unused after r158289.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 10 Jun 2012 07:07:24 +0000 (07:07 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 10 Jun 2012 07:07:24 +0000 (07:07 +0000)
commitd3861ce75a308c65b58c0159e2cee58aea2dff1c
treed0f7d334fee6c47ce05d686e6f38921c89dbeaf5
parent7756afa6273cf708b5e3fbd6a6478eb2cada27e2
Remove CXXRecordDecl flags which are unused after r158289.

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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158290 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/DeclCXX.h
lib/AST/ASTImporter.cpp
lib/AST/DeclCXX.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriter.cpp