The use of default_binds_local_p had got out of sync with the varasm
changes, this restores the call to be direct.  In practice, we add some
further tests to determine local binding - but this callback is used for
the initial assessments made by default_encode_section_info().

tested on x86_64-darwin16,
applied to mainline,
thanks
Iain

gcc/ChangeLog:

2019-10-15  Iain Sandoe  <i...@sandoe.co.uk>

        * config/darwin.c (darwin_binds_local_p): Update to call
        default_binds_local_p_3 () directly. amend comments.

diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 1d386e0670..d34b0035bd 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -3049,8 +3049,14 @@ darwin_file_end (void)
 bool
 darwin_binds_local_p (const_tree decl)
 {
-  return default_binds_local_p_1 (decl,
-                                 TARGET_KEXTABI && DARWIN_VTABLE_P (decl));
+  /* We use the "shlib" input to indicate that a symbol should be
+     considered overridable; only relevant for vtables in kernel modules
+     on earlier system versions, and with a TODO to complete.  */
+  bool force_overridable = TARGET_KEXTABI && DARWIN_VTABLE_P (decl);
+  return default_binds_local_p_3 (decl, force_overridable /* shlib */,
+                                 false /* weak dominate */,
+                                 false /* extern_protected_data */,
+                                 false /* common_local_p */);
 }
 
 /* The Darwin's implementation of TARGET_ASM_OUTPUT_ANCHOR.  Define the

Reply via email to