]> granicus.if.org Git - clang/commit
Remove C++ default arg side table for MS ABI ctor closures
authorReid Kleckner <rnk@google.com>
Wed, 23 Nov 2016 16:51:30 +0000 (16:51 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 23 Nov 2016 16:51:30 +0000 (16:51 +0000)
commitc480c8c15397e2859863d4a4dbb72994ddf35a33
tree2aba165ca949269cef62585660c39e13a6c9bd7f
parent9f96dfc94290d403e5696bb7aeccd03fe8e33020
Remove C++ default arg side table for MS ABI ctor closures

Summary:
We don't need a side table in ASTContext to hold CXXDefaultArgExprs. The
important part of building the CXXDefaultArgExprs was to ODR use the
default argument expressions, not to make AST nodes. Refactor the code
to only check the default argument, and remove the side table in
ASTContext which wasn't being serialized.

Fixes PR31121

Reviewers: thakis, rsmith, majnemer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D27007

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@287774 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/ASTContext.h
include/clang/Sema/Sema.h
lib/AST/ASTContext.cpp
lib/AST/CXXABI.h
lib/AST/ItaniumCXXABI.cpp
lib/AST/MicrosoftCXXABI.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/default-arg-closures.cpp [new file with mode: 0644]