Use function_ref to avoid allocation in std::function. NFC.
llvm-svn: 289433
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index b08c698..2028d2c 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -10029,7 +10029,8 @@
/// local diagnostics like in reference binding.
void RefersToMemberWithReducedAlignment(
Expr *E,
- std::function<void(Expr *, RecordDecl *, FieldDecl *, CharUnits)> Action);
+ llvm::function_ref<void(Expr *, RecordDecl *, FieldDecl *, CharUnits)>
+ Action);
};
/// \brief RAII object that enters a new expression evaluation context.
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index fd0654b..6a9afc4 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -11816,7 +11816,8 @@
void Sema::RefersToMemberWithReducedAlignment(
Expr *E,
- std::function<void(Expr *, RecordDecl *, FieldDecl *, CharUnits)> Action) {
+ llvm::function_ref<void(Expr *, RecordDecl *, FieldDecl *, CharUnits)>
+ Action) {
const auto *ME = dyn_cast<MemberExpr>(E);
if (!ME)
return;