Sun Sep 13 20:29:39 1992 Ian Lance Taylor (ian@cygnus.com)
authorIan Lance Taylor <ian@airs.com>
Mon, 14 Sep 1992 05:25:56 +0000 (05:25 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 14 Sep 1992 05:25:56 +0000 (05:25 +0000)
* obj-coffbfd.h: define WARN_SIGNED_OVERFLOW_WORD.
obj-coffbfd.c (fixup_segment): check for signed .word overflow if
WARN_SIGNED_OVERFLOW_WORD.

gas/config/ChangeLog
gas/config/obj-coffbfd.c
gas/config/obj-coffbfd.h

index f8adc0f9a6985180526bb16150fc63d4bde7811e..4b3bef2ca786eb7e379974e2a716f59830dd6a55 100644 (file)
@@ -1,5 +1,9 @@
 Sun Sep 13 20:29:39 1992  Ian Lance Taylor  (ian@cygnus.com)
 
+       * obj-coffbfd.h: define WARN_SIGNED_OVERFLOW_WORD.
+       obj-coffbfd.c (fixup_segment): check for signed .word overflow if
+       WARN_SIGNED_OVERFLOW_WORD.
+
        * obj-coffbfd.c (fixup_segment): fixed missing parens in
        expression checking for byte or word overflow.
 
index 1f59b558ccb32718f829db90d62212737ef3af3c..b66269cca813b9a054c07c9c55a9cefb1d942854 100644 (file)
@@ -2262,6 +2262,17 @@ segT             this_segment_type)
                        as_bad("Value of %d too large for field of %d bytes at 0x%x",
                               add_number, size, fragP->fr_address + where);
                    }           /* generic error checking */
+#ifdef WARN_SIGNED_OVERFLOW_WORD
+               /* Warn if a .word value is too large when treated as
+                  a signed number.  We already know it is not too
+                  negative.  This is to catch over-large switches
+                  generated by gcc on the 68k.  */
+               if (! flagseen['J']
+                   && size == 2
+                   && add_number > 0x7fff)
+                 as_bad ("Signed .word overflow; switch may be too large; %d at 0x%x",
+                         add_number, fragP->fr_address + where);
+#endif
            }                   /* not a bit fix */
        /* once this fix has been applied, we don't have to output anything 
           nothing more need be done -*/
index 217fd86aca00095a6954324b5e8173290d29398d..ad8b5d44c4395c13ce4efa186a68c136fe67661b 100644 (file)
@@ -23,6 +23,7 @@
 #define OBJ_COFF 1
 
 #define WORKING_DOT_WORD
+#define WARN_SIGNED_OVERFLOW_WORD
 
 #include "targ-cpu.h"