summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-10-31 23:07:15 +0000
committerEric Fiselier <eric@efcs.ca>2016-10-31 23:07:15 +0000
commit525a3514479692be9704210f18f7ef9fa58758d9 (patch)
treeca165f53be155979863313cbac5d0adcd7e41da6 /clang/lib
parent51cbe13a3ff507a14ab8d27a0505c30b33af7073 (diff)
downloadbcm5719-llvm-525a3514479692be9704210f18f7ef9fa58758d9.tar.gz
bcm5719-llvm-525a3514479692be9704210f18f7ef9fa58758d9.zip
[modules] Mark deleted functions as implicitly inline to allow merging
Summary: When merging definitions with ModulesLocalVisibility enabled it's important to make deleted definitions implicitly inline, otherwise they'll be diagnosed as a redefinition. Reviewers: silvas, manmanren, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26143 llvm-svn: 285655
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 2c743673f69..17d1978de03 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -13875,6 +13875,9 @@ void Sema::SetDeclDeleted(Decl *Dcl, SourceLocation DelLoc) {
if (Fn->isMain())
Diag(DelLoc, diag::err_deleted_main);
+ // C++11 [dcl.fct.def.delete]p4:
+ // A deleted function is implicitly inline.
+ Fn->setImplicitlyInline();
Fn->setDeletedAsWritten();
}
OpenPOWER on IntegriCloud