svn commit: r339019 - in head: contrib/llvm/tools/clang/lib/CodeGen lib/clang
Ed Maste
emaste at FreeBSD.org
Sat Sep 29 20:01:24 UTC 2018
Author: emaste
Date: Sat Sep 29 20:01:23 2018
New Revision: 339019
URL: https://svnweb.freebsd.org/changeset/base/339019
Log:
clang: allow ifunc resolvers to accept arguments
Previously Clang required ifunc resolution functions to take no
arguments, presumably because GCC documented ifunc resolvers as taking
no arguments. However, GCC accepts resolvers accepting arguments, and
our rtld passes CPU ID information (cpuid, hwcap, etc.) to ifunc
resolvers. Just remove the check from the in-tree compiler for our in-
tree compiler; a different (per-OS) approach may be required upstream.
Reported by: mjg
Approved by: re (rgrimes)
MFC after: 1 week
Relnotes: Yes
Sponsored by: The FreeBSD Foundation
Modified:
head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
head/lib/clang/freebsd_cc_version.h
Modified: head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp Sat Sep 29 18:36:19 2018 (r339018)
+++ head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp Sat Sep 29 20:01:23 2018 (r339019)
@@ -321,8 +321,6 @@ void CodeGenModule::checkAliases() {
assert(FTy);
if (!FTy->getReturnType()->isPointerTy())
Diags.Report(Location, diag::err_ifunc_resolver_return);
- if (FTy->getNumParams())
- Diags.Report(Location, diag::err_ifunc_resolver_params);
}
llvm::Constant *Aliasee = Alias->getIndirectSymbol();
Modified: head/lib/clang/freebsd_cc_version.h
==============================================================================
--- head/lib/clang/freebsd_cc_version.h Sat Sep 29 18:36:19 2018 (r339018)
+++ head/lib/clang/freebsd_cc_version.h Sat Sep 29 20:01:23 2018 (r339019)
@@ -1,3 +1,3 @@
/* $FreeBSD$ */
-#define FREEBSD_CC_VERSION 1200015
+#define FREEBSD_CC_VERSION 1200016
More information about the svn-src-all
mailing list