mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-18 05:12:33 +08:00
Fix diagnostic errors
Fixes a number of build errors like the following .../elf32-arm.c: In function 'elf32_arm_nabi_write_core_note': .../elf32-arm.c:2177: error: #pragma GCC diagnostic not allowed inside functions .../elf32-arm.c:2186: error: #pragma GCC diagnostic not allowed inside functions See the comment in diagnostics.h. include/ * diagnostics.h: Comment on macro usage. bfd/ * elf32-arm.c (elf32_arm_nabi_write_core_note): Don't use DIAGNOTIC_PUSH and DIAGNOSTIC_POP unconditionally. * elf32-ppc.c (ppc_elf_write_core_note): Likewise. * elf32-s390.c (elf_s390_write_core_note): Likewise. * elf64-ppc.c (ppc64_elf_write_core_note): Likewise. * elf64-s390.c (elf_s390_write_core_note): Likewise. * elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewise.
This commit is contained in:
@ -16,6 +16,20 @@
|
||||
#ifndef DIAGNOSTICS_H
|
||||
#define DIAGNOSTICS_H
|
||||
|
||||
/* If at all possible, fix the source rather than using these macros
|
||||
to silence warnings. If you do use these macros be aware that
|
||||
you'll need to condition their use on particular compiler versions,
|
||||
which can be done for gcc using ansidecl.h's GCC_VERSION macro.
|
||||
|
||||
gcc versions between 4.2 and 4.6 do not allow pragma control of
|
||||
diagnostics inside functions, giving a hard error if you try to use
|
||||
the finer control available with later versions.
|
||||
gcc prior to 4.2 warns about diagnostic push and pop.
|
||||
|
||||
The other macros have restrictions too, for example gcc-5, gcc-6
|
||||
and gcc-7 warn that -Wstringop-truncation is unknown, unless you
|
||||
also add DIAGNOSTIC_IGNORE ("-Wpragma"). */
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define DIAGNOSTIC_PUSH _Pragma ("GCC diagnostic push")
|
||||
# define DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop")
|
||||
|
Reference in New Issue
Block a user