Fix compile time warning building aout targeted architectures.
authorGunther Nikl <gnikl@users.sourceforge.net>
Fri, 12 Jan 2018 13:12:17 +0000 (13:12 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 12 Jan 2018 13:12:17 +0000 (13:12 +0000)
Occasionally I build an out-of-tree a.out target (m68k-amigaos). After
a system upgrade which included a newer compiler (clang 4) the build
produces warnings like this:

  warning: macro expansion producing 'defined' has undefined behavior
  [-Wexpansion-to-defined]

This is caused by the macro gas/config/aout_gnu.h:USE_EXTENDED_RELOC.
Since it is in a header file, the warning triggers for several files.
I am unsure what solution is preferable, thus I am suggesting two
patches:

  a) keep the offending macro but define it explicitly to 0 and 1
  b) replace the macro usage with its value where it is used.

Either patch removes the warning for clang. I did not check with a
recent GCC.

* gas/config/aout_gnu.h (USE_EXTENDED_RELOC): Explicitly
define to 0 and 1. Remove a dangling reference to "AMD 29000"
in a comment.

gas/ChangeLog
gas/config/aout_gnu.h

index 0b45805..5887b36 100644 (file)
@@ -1,3 +1,9 @@
+2018-01-12  Gunther Nikl  <gnikl@users.sourceforge.net>
+
+       * gas/config/aout_gnu.h (USE_EXTENDED_RELOC): Explicitly
+       define to 0 and 1. Remove a dangling reference to "AMD 29000"
+       in a comment.
+
 2018-01-11  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
 
        * testsuite/i386/avx512_4fmaps_vl-warn.l: Likewise.
index 6d80d5d..f404d1e 100644 (file)
@@ -32,8 +32,6 @@
 
 */
 
-#define USE_EXTENDED_RELOC defined(TC_SPARC)
-
 #if defined(TC_SPARC)
 enum reloc_type
   {
@@ -62,6 +60,9 @@ enum reloc_type
     NO_RELOC
   };
 
+#define USE_EXTENDED_RELOC 1
+#else
+#define USE_EXTENDED_RELOC 0
 #endif /* TC_SPARC */
 
 #define __GNU_EXEC_MACROS__
@@ -303,7 +304,7 @@ struct nlist
 
 /* The following enum and struct were borrowed from SunOS's
    /usr/include/sun4/a.out.h  and extended to handle
-   other machines.  It is currently used on SPARC and AMD 29000.
+   other machines.  It is currently used on SPARC.
 
    reloc_ext_bytes is how it looks on disk.  reloc_info_extended is
    how we might process it on a native host.  */