emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/native-comp eeac3f4 2/3: * Move diagnostic pragmas out of namesp


From: Andrea Corallo
Subject: feature/native-comp eeac3f4 2/3: * Move diagnostic pragmas out of namespace-scope (bug#45303).
Date: Sat, 19 Dec 2020 02:54:22 -0500 (EST)

branch: feature/native-comp
commit eeac3f4db4e3cdd0fc71541c827466927334dce4
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>

    * Move diagnostic pragmas out of namespace-scope (bug#45303).
    
    Pragmas in GCC don't work reliably within function:
    <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92696>
    
        * src/comp.c (emit_static_object)
        (Fcomp_native_driver_options_effective_p)
        (Fcomp_libgccjit_version): Move pragmas out of name-scope.
---
 src/comp.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/comp.c b/src/comp.c
index 1842aeb..b52e7e3 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -2493,6 +2493,7 @@ emit_maybe_gc_or_quit (Lisp_Object insn)
 
 /* This is in charge of serializing an object and export a function to
    retrieve it at load time.  */
+#pragma GCC diagnostic ignored "-Waddress"
 static void
 emit_static_object (const char *name, Lisp_Object obj)
 {
@@ -2521,9 +2522,7 @@ emit_static_object (const char *name, Lisp_Object obj)
 
 #if defined (LIBGCCJIT_HAVE_gcc_jit_global_set_initializer) \
   || defined (WINDOWSNT)
-#pragma GCC diagnostic ignored "-Waddress"
   if (gcc_jit_global_set_initializer)
-#pragma GCC diagnostic pop
     {
       ptrdiff_t str_size = len + 1;
       ptrdiff_t size = sizeof (static_obj_t) + str_size;
@@ -2682,6 +2681,7 @@ emit_static_object (const char *name, Lisp_Object obj)
   gcc_jit_rvalue *res = gcc_jit_lvalue_get_address (data_struct, NULL);
   gcc_jit_block_end_with_return (block, NULL, res);
 }
+#pragma GCC diagnostic pop
 
 static gcc_jit_rvalue *
 declare_imported_data_relocs (Lisp_Object container, const char *code_symbol,
@@ -4363,6 +4363,7 @@ DEFUN ("comp--release-ctxt", Fcomp__release_ctxt, 
Scomp__release_ctxt,
   return Qt;
 }
 
+#pragma GCC diagnostic ignored "-Waddress"
 DEFUN ("comp-native-driver-options-effective-p",
        Fcomp_native_driver_options_effective_p,
        Scomp_native_driver_options_effective_p,
@@ -4372,14 +4373,12 @@ DEFUN ("comp-native-driver-options-effective-p",
 {
 #if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option)  \
   || defined (WINDOWSNT)
-#pragma GCC diagnostic ignored "-Waddress"
   if (gcc_jit_context_add_driver_option)
     return Qt;
-#pragma GCC diagnostic pop
 #endif
   return Qnil;
 }
-
+#pragma GCC diagnostic pop
 
 static void
 add_driver_options (void)
@@ -4526,6 +4525,7 @@ DEFUN ("comp--compile-ctxt-to-file", 
Fcomp__compile_ctxt_to_file,
   return filename;
 }
 
+#pragma GCC diagnostic ignored "-Waddress"
 DEFUN ("comp-libgccjit-version", Fcomp_libgccjit_version,
        Scomp_libgccjit_version, 0, 0, 0,
        doc: /* Return libgccjit version in use.
@@ -4537,19 +4537,16 @@ unknown (before GCC version 10).  */)
 #if defined (LIBGCCJIT_HAVE_gcc_jit_version) || defined (WINDOWSNT)
   load_gccjit_if_necessary (true);
 
-  /* FIXME this kludge is quite bad.  Can we dynamically load on all
-     operating systems?  */
-#pragma GCC diagnostic ignored "-Waddress"
   return gcc_jit_version_major
     ? list3 (make_fixnum (gcc_jit_version_major ()),
             make_fixnum (gcc_jit_version_minor ()),
             make_fixnum (gcc_jit_version_patchlevel ()))
     : Qnil;
-#pragma GCC diagnostic pop
 #else
   return Qnil;
 #endif
 }
+#pragma GCC diagnostic pop
 
 
 
/******************************************************************************/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]