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
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to