aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrea Corallo2020-12-19 08:34:59 +0100
committerAndrea Corallo2020-12-19 08:53:45 +0100
commiteeac3f4db4e3cdd0fc71541c827466927334dce4 (patch)
treef9fad7f6a20485d650879c4c587c34500c2fe23e /src
parent49f81d6a531283416d3a87e46ee6696eea971b64 (diff)
downloademacs-eeac3f4db4e3cdd0fc71541c827466927334dce4.tar.gz
emacs-eeac3f4db4e3cdd0fc71541c827466927334dce4.zip
* 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.
Diffstat (limited to 'src')
-rw-r--r--src/comp.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/comp.c b/src/comp.c
index 1842aeb8393..b52e7e34aea 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -2493,6 +2493,7 @@ emit_maybe_gc_or_quit (Lisp_Object insn)
2493 2493
2494/* This is in charge of serializing an object and export a function to 2494/* This is in charge of serializing an object and export a function to
2495 retrieve it at load time. */ 2495 retrieve it at load time. */
2496#pragma GCC diagnostic ignored "-Waddress"
2496static void 2497static void
2497emit_static_object (const char *name, Lisp_Object obj) 2498emit_static_object (const char *name, Lisp_Object obj)
2498{ 2499{
@@ -2521,9 +2522,7 @@ emit_static_object (const char *name, Lisp_Object obj)
2521 2522
2522#if defined (LIBGCCJIT_HAVE_gcc_jit_global_set_initializer) \ 2523#if defined (LIBGCCJIT_HAVE_gcc_jit_global_set_initializer) \
2523 || defined (WINDOWSNT) 2524 || defined (WINDOWSNT)
2524#pragma GCC diagnostic ignored "-Waddress"
2525 if (gcc_jit_global_set_initializer) 2525 if (gcc_jit_global_set_initializer)
2526#pragma GCC diagnostic pop
2527 { 2526 {
2528 ptrdiff_t str_size = len + 1; 2527 ptrdiff_t str_size = len + 1;
2529 ptrdiff_t size = sizeof (static_obj_t) + str_size; 2528 ptrdiff_t size = sizeof (static_obj_t) + str_size;
@@ -2682,6 +2681,7 @@ emit_static_object (const char *name, Lisp_Object obj)
2682 gcc_jit_rvalue *res = gcc_jit_lvalue_get_address (data_struct, NULL); 2681 gcc_jit_rvalue *res = gcc_jit_lvalue_get_address (data_struct, NULL);
2683 gcc_jit_block_end_with_return (block, NULL, res); 2682 gcc_jit_block_end_with_return (block, NULL, res);
2684} 2683}
2684#pragma GCC diagnostic pop
2685 2685
2686static gcc_jit_rvalue * 2686static gcc_jit_rvalue *
2687declare_imported_data_relocs (Lisp_Object container, const char *code_symbol, 2687declare_imported_data_relocs (Lisp_Object container, const char *code_symbol,
@@ -4363,6 +4363,7 @@ DEFUN ("comp--release-ctxt", Fcomp__release_ctxt, Scomp__release_ctxt,
4363 return Qt; 4363 return Qt;
4364} 4364}
4365 4365
4366#pragma GCC diagnostic ignored "-Waddress"
4366DEFUN ("comp-native-driver-options-effective-p", 4367DEFUN ("comp-native-driver-options-effective-p",
4367 Fcomp_native_driver_options_effective_p, 4368 Fcomp_native_driver_options_effective_p,
4368 Scomp_native_driver_options_effective_p, 4369 Scomp_native_driver_options_effective_p,
@@ -4372,14 +4373,12 @@ DEFUN ("comp-native-driver-options-effective-p",
4372{ 4373{
4373#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \ 4374#if defined (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option) \
4374 || defined (WINDOWSNT) 4375 || defined (WINDOWSNT)
4375#pragma GCC diagnostic ignored "-Waddress"
4376 if (gcc_jit_context_add_driver_option) 4376 if (gcc_jit_context_add_driver_option)
4377 return Qt; 4377 return Qt;
4378#pragma GCC diagnostic pop
4379#endif 4378#endif
4380 return Qnil; 4379 return Qnil;
4381} 4380}
4382 4381#pragma GCC diagnostic pop
4383 4382
4384static void 4383static void
4385add_driver_options (void) 4384add_driver_options (void)
@@ -4526,6 +4525,7 @@ DEFUN ("comp--compile-ctxt-to-file", Fcomp__compile_ctxt_to_file,
4526 return filename; 4525 return filename;
4527} 4526}
4528 4527
4528#pragma GCC diagnostic ignored "-Waddress"
4529DEFUN ("comp-libgccjit-version", Fcomp_libgccjit_version, 4529DEFUN ("comp-libgccjit-version", Fcomp_libgccjit_version,
4530 Scomp_libgccjit_version, 0, 0, 0, 4530 Scomp_libgccjit_version, 0, 0, 0,
4531 doc: /* Return libgccjit version in use. 4531 doc: /* Return libgccjit version in use.
@@ -4537,19 +4537,16 @@ unknown (before GCC version 10). */)
4537#if defined (LIBGCCJIT_HAVE_gcc_jit_version) || defined (WINDOWSNT) 4537#if defined (LIBGCCJIT_HAVE_gcc_jit_version) || defined (WINDOWSNT)
4538 load_gccjit_if_necessary (true); 4538 load_gccjit_if_necessary (true);
4539 4539
4540 /* FIXME this kludge is quite bad. Can we dynamically load on all
4541 operating systems? */
4542#pragma GCC diagnostic ignored "-Waddress"
4543 return gcc_jit_version_major 4540 return gcc_jit_version_major
4544 ? list3 (make_fixnum (gcc_jit_version_major ()), 4541 ? list3 (make_fixnum (gcc_jit_version_major ()),
4545 make_fixnum (gcc_jit_version_minor ()), 4542 make_fixnum (gcc_jit_version_minor ()),
4546 make_fixnum (gcc_jit_version_patchlevel ())) 4543 make_fixnum (gcc_jit_version_patchlevel ()))
4547 : Qnil; 4544 : Qnil;
4548#pragma GCC diagnostic pop
4549#else 4545#else
4550 return Qnil; 4546 return Qnil;
4551#endif 4547#endif
4552} 4548}
4549#pragma GCC diagnostic pop
4553 4550
4554 4551
4555/******************************************************************************/ 4552/******************************************************************************/