OSDN Git Service

* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Apr 2000 00:54:25 +0000 (00:54 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Apr 2000 00:54:25 +0000 (00:54 +0000)
        message in quotes. Otherwise, IBM's make program treats the '#' as the
        start of a comment and ignores the remainder of the line.

        * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
        upper case.
        * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
        * cexp.y (initialize_random_junk): Likewise.
        * cppfiles.c (find_include_file): Cast alloca return value.
        * cppinit.c (initialize_standard_includes): Likewise.
        * cpplib.c (cpp_define, cpp_undef): Likewise.
        * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
        * final.c (output_asm_insn): Allow for holes in EBCDIC.
        * fold-const.c (CHARMASK): New.
        (real_hex_to_f): Use it.
        * real.c (CHARMASK): New.
        (etoasc, asctoeg): Use it.
        (asctoeg): EBCDIC lower case characters preceed upper case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33192 138bc75d-0d04-0410-961f-82ee72b054a4

12 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/c-lex.c
gcc/cccp.c
gcc/cexp.y
gcc/cppfiles.c
gcc/cppinit.c
gcc/cpplib.c
gcc/defaults.h
gcc/final.c
gcc/fold-const.c
gcc/real.c

index 9f89087..c629f81 100644 (file)
@@ -1,3 +1,38 @@
+2000-04-12  Dave Pitts  <dpitts@cozx.com>
+
+       * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
+       message in quotes. Otherwise, IBM's make program treats the '#' as the
+       start of a comment and ignores the remainder of the line.
+
+       * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
+       upper case.
+       * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
+       * cexp.y (initialize_random_junk): Likewise.
+       * cppfiles.c (find_include_file): Cast alloca return value.
+       * cppinit.c (initialize_standard_includes): Likewise.
+       * cpplib.c (cpp_define, cpp_undef): Likewise.
+       * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
+       * final.c (output_asm_insn): Allow for holes in EBCDIC.
+       * fold-const.c (CHARMASK): New.
+       (real_hex_to_f): Use it.
+       * real.c (CHARMASK): New.
+       (etoasc, asctoeg): Use it.
+       (asctoeg): EBCDIC lower case characters preceed upper case.
+
+       * i370.c (mvs_add_label): Change spacing for coding conventions.
+       * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
+       outputing case vectors.
+       (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
+       (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
+       since vector in in the data CSECT.
+       (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.        * i370.md (Many patterns): Put the length in the XL directives.
+       (movdi): Put back STM and MVC in definition.
+       (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
+       pattern using the TCA.
+       * oe.h (CPP_SPEC): Added to allow trigraphs.
+       * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
+       not support the "long long" type.
+
 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
 
        * config/mips/mips-protos.h (mips_legitimate_address_p): New
@@ -39,9 +74,9 @@
 
 2004-04-16  Neil Booth  <NeilB@earthling.net>
 
-        * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
-        * cpplib.c: Add new syntax flags to directive table, and
-        supporting macros.
+       * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
+       * cpplib.c: Add new syntax flags to directive table, and
+       supporting macros.
 
 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
 
@@ -225,8 +260,8 @@ Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
 
 2000-04-14  Richard Henderson  <rth@cygnus.com>
 
-        * fold-const.c (extract_muldiv): Don't distribute and widen
-        multiply across plus for non-sizetype unsigned types.
+       * fold-const.c (extract_muldiv): Don't distribute and widen
+       multiply across plus for non-sizetype unsigned types.
 
 2000-04-14  Richard Henderson  <rth@cygnus.com>
 
@@ -254,7 +289,7 @@ Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
 2000-04-13  Andreas Jaeger  <aj@suse.de>
 
        * config/mips/mips.c (expand_block_move): Pass alignment
-        argument to move_by_pieces in bits, not bytes.
+       argument to move_by_pieces in bits, not bytes.
 
        * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
        __pic__ for little endian.
@@ -357,8 +392,8 @@ Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
  
-        * calls.c (emit_library_call_value_1): Change 3rd arg to
-        locate_and_pad_parm to disregard the setting of partial.
+       * calls.c (emit_library_call_value_1): Change 3rd arg to
+       locate_and_pad_parm to disregard the setting of partial.
 
 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
@@ -3889,11 +3924,11 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
        2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
 
-        * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
-        reload_toc_labelno for non-prologue TOC reloads.  Also, don't
-        increment rs6000_pic_labelno here.
-        (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
-        and increment rs6000_pic_labelno here.
+       * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
+       reload_toc_labelno for non-prologue TOC reloads.  Also, don't
+       increment rs6000_pic_labelno here.
+       (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
+       and increment rs6000_pic_labelno here.
 
        2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
 
@@ -4072,29 +4107,29 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
        2000-01-07  David Edelsohn  <edelsohn@gnu.org>
 
-        * rs6000.c (processor_target_table): Add power3 as alias for 630.
-        * aix43.h: Revert Aug 2 change.
-        (HAS_INIT_SECTION): Define, not visible yet.
-        (LD_INIT_SWITCH): Define, not visible yet.
-        * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
+       * rs6000.c (processor_target_table): Add power3 as alias for 630.
+       * aix43.h: Revert Aug 2 change.
+       (HAS_INIT_SECTION): Define, not visible yet.
+       (LD_INIT_SWITCH): Define, not visible yet.
+       * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
 
        2000-01-04  Joel Sherrill (joel@OARcorp.com>
 
-        * config/rs6000/rtems.h: Include config/rtems.h.
+       * config/rs6000/rtems.h: Include config/rtems.h.
 
        2000-01-04  David Edelsohn  <edelsohn@gnu.org>
 
-        * rs6000.h (HANDLE_PRAGMA_PACK): Define.
-        (SLOW_UNALIGNED_ACCESS): Define.
-        (CASE_VECTOR_MODE): Always use 32-bit offsets.
-        (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
-        (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
-        (toc_section): Likewise and .toc pseudo-op.
-        (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
-        64-bit mode.
-        (TEXT_SECTION_ASM_OP): Likewise.
-        (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
-        32-bit offsets.
+       * rs6000.h (HANDLE_PRAGMA_PACK): Define.
+       (SLOW_UNALIGNED_ACCESS): Define.
+       (CASE_VECTOR_MODE): Always use 32-bit offsets.
+       (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
+       (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
+       (toc_section): Likewise and .toc pseudo-op.
+       (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
+       64-bit mode.
+       (TEXT_SECTION_ASM_OP): Likewise.
+       (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
+       32-bit offsets.
 
        1999-12-17  Jakub Jelinek  <jakub@redhat.com>
 
@@ -4111,7 +4146,7 @@ Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
 
        2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
 
-        * rs6000.h: Continue cleanup.
+       * rs6000.h: Continue cleanup.
        * aix.h: Likewise.
        * lynx.h: Likewise.
        * netware.h: Likewise.
index ad582c4..493d080 100644 (file)
@@ -1360,7 +1360,7 @@ $(srcdir)/c-parse.y: c-parse.in
 $(srcdir)/c-gperf.h: c-parse.gperf
        gperf -L C -F ', 0, 0' -p -j1 -i 1 -g -o -t -G -N is_reserved_word \
           -k1,3,$$ $(srcdir)/c-parse.gperf >tmp-gperf.h || ( \
-       echo "See " $(website)/cvs.html#generated_files >&2 ; \
+       echo "See $(website)/cvs.html#generated_files" >&2 ; \
        exit 1 )
         $(SHELL) $(srcdir)/move-if-change tmp-gperf.h $(srcdir)/c-gperf.h
 
index 2f8a840..d769706 100644 (file)
@@ -1625,7 +1625,7 @@ yylex ()
                    floatflag = AFTER_EXPON;
                    break;   /* start of exponent */
                  }
-               else if (c >= 'a')
+               else if (c >= 'a' && c <= 'f')
                  {
                    c = c - 'a' + 10;
                  }
index e91d8cf..9a02333 100644 (file)
@@ -10249,10 +10249,13 @@ initialize_char_syntax ()
    * refer to them.
    */
   for (i = 'a'; i <= 'z'; i++) {
-    is_idchar[TOUPPER(i)] = 1;
-    is_idchar[i] = 1;
-    is_idstart[TOUPPER(i)] = 1;
-    is_idstart[i] = 1;
+    /* SKIP EBCIDIC holes, char must be a valid low case char */
+    if (ISLOWER(i)) {
+      is_idchar[TOUPPER(i)] = 1;
+      is_idchar[i] = 1;
+      is_idstart[TOUPPER(i)] = 1;
+      is_idstart[i] = 1;
+    }
   }
   for (i = '0'; i <= '9'; i++)
     is_idchar[i] = 1;
index 1fb2f5d..83f4ced 100644 (file)
@@ -1114,10 +1114,13 @@ initialize_random_junk ()
    * refer to them.
    */
   for (i = 'a'; i <= 'z'; i++) {
-    ++is_idchar[TOUPPER(i)];
-    ++is_idchar[i];
-    ++is_idstart[TOUPPER(i)];
-    ++is_idstart[i];
+    /* SKIP EBCIDIC holes, char must be a valid low case char */
+    if (ISLOWER(i)) {
+      ++is_idchar[TOUPPER(i)];
+      ++is_idchar[i];
+      ++is_idstart[TOUPPER(i)];
+      ++is_idstart[i];
+    }
   }
   for (i = '0'; i <= '9'; i++)
     ++is_idchar[i];
index 59ee7c7..cc891d4 100644 (file)
@@ -284,7 +284,7 @@ find_include_file (pfile, fname, search_start, ihash, before)
   else
     {
       /* Search directory path, trying to open the file.  */
-      name = alloca (strlen (fname) + pfile->max_include_len
+      name = (char *) alloca (strlen (fname) + pfile->max_include_len
                     + 2 + INCLUDE_LEN_FUDGE);
       do
        {
index 5174da8..7d20b2c 100644 (file)
@@ -795,7 +795,7 @@ initialize_standard_includes (pfile)
      These have /usr/local/lib/gcc... replaced by specd_prefix.  */
   if (specd_prefix != 0)
     {
-      char *default_prefix = alloca (sizeof GCC_INCLUDE_DIR - 7);
+      char *default_prefix = (char *) alloca (sizeof GCC_INCLUDE_DIR - 7);
       /* Remove the `include' from /usr/local/lib/gcc.../include.
         GCC_INCLUDE_DIR will always end in /include. */
       int default_len = sizeof GCC_INCLUDE_DIR - 8;
index cd8285b..98bd933 100644 (file)
@@ -1705,7 +1705,7 @@ cpp_define (pfile, str)
   if (p)
     {
       count = strlen (str) + 2;
-      buf = alloca (count);
+      buf = (char *) alloca (count);
       memcpy (buf, str, count - 2);
       buf[p - str] = ' ';
       buf[count - 2] = '\n';
@@ -1714,7 +1714,7 @@ cpp_define (pfile, str)
   else
     {
       count = strlen (str) + 4;
-      buf = alloca (count);
+      buf = (char *) alloca (count);
       memcpy (buf, str, count - 4);
       strcpy (&buf[count-4], " 1\n");
     }
@@ -1734,7 +1734,7 @@ cpp_undef (pfile, macro)
 {
   /* Copy the string so we can append a newline.  */
   size_t len = strlen (macro);
-  char *buf = alloca (len + 2);
+  char *buf = (char *) alloca (len + 2);
   memcpy (buf, macro, len);
   buf[len]     = '\n';
   buf[len + 1] = '\0';
index 0582c00..b551fea 100644 (file)
@@ -80,7 +80,7 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
          register int c = p[i];                                              \
          if (c == '\"' || c == '\\')                                         \
            putc ('\\', asm_out_file);                                        \
-         if (c >= ' ' && c < 0177)                                           \
+         if (ISPRINT(c))                                                     \
            putc (c, asm_out_file);                                           \
          else                                                                \
            {                                                                 \
index ade9da9..1d4666e 100644 (file)
@@ -3457,8 +3457,7 @@ output_asm_insn (template, operands)
           Letters `acln' are implemented directly.
           Other letters are passed to `output_operand' so that
           the PRINT_OPERAND macro can define them.  */
-       else if ((*p >= 'a' && *p <= 'z')
-                || (*p >= 'A' && *p <= 'Z'))
+       else if (ISLOWER(*p) || ISUPPER(*p))
          {
            int letter = *p++;
            c = atoi (p);
index 991dddd..e0d0f00 100644 (file)
@@ -106,6 +106,14 @@ static int count_cond              PARAMS ((tree, int));
 #define BRANCH_COST 1
 #endif
 
+#if defined(HOST_EBCDIC)
+/* bit 8 is significant in EBCDIC */
+#define CHARMASK 0xff
+#else
+#define CHARMASK 0x7f
+#endif
+
+
 /* We know that A1 + B1 = SUM1, using 2's complement arithmetic and ignoring
    overflow.  Suppose A, B and SUM have the same respective signs as A1, B1,
    and SUM1.  Then this yields nonzero if overflow occurred during the
@@ -1091,8 +1099,8 @@ real_hex_to_f (s, mode)
        if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')
           || (c >= 'a' && c <= 'f'))
         {
-          k = c & 0x7f;
-          if (k >= 'a')
+          k = c & CHARMASK;
+          if (k >= 'a' && k <= 'f')
             k = k - 'a' + 10;
           else if (k >= 'A')
             k = k - 'A' + 10;
@@ -1137,7 +1145,7 @@ real_hex_to_f (s, mode)
              The exponent field is a decimal integer.  */
           while (ISDIGIT(*p))
             {
-              k = (*p++ & 0x7f) - '0';
+              k = (*p++ & CHARMASK) - '0';
               expon = 10 * expon + k;
             }
 
index 6acd2bf..2022aac 100644 (file)
@@ -337,6 +337,13 @@ do {                                                                       \
 /* The exponent of 1.0 */
 #define EXONE (0x3fff)
 
+#if defined(HOST_EBCDIC)
+/* bit 8 is significant in EBCDIC */
+#define CHARMASK 0xff
+#else
+#define CHARMASK 0x7f
+#endif
+
 extern int extra_warnings;
 extern unsigned EMUSHORT ezero[], ehalf[], eone[], etwo[];
 extern unsigned EMUSHORT elog2[], esqrt2[];
@@ -4981,7 +4988,7 @@ etoasc (x, string, ndigs)
       /* Round up and propagate carry-outs */
     roun:
       --s;
-      k = *s & 0x7f;
+      k = *s & CHARMASK;
       /* Carry out to most significant digit? */
       if (k == '.')
        {
@@ -5142,7 +5149,7 @@ asctoeg (ss, y, oprec)
  nxtcom:
   if (*s >= '0' && *s <= '9')
     k = *s - '0';
-  else if (*s >= 'a')
+  else if (*s >= 'a' && *s <= 'f')
     k = 10 + *s - 'a';
   else
     k = 10 + *s - 'A';
@@ -5160,7 +5167,7 @@ asctoeg (ss, y, oprec)
                                    || (*sp >= 'A' && *sp <= 'F'))))
            ++sp;
          /* Check for syntax error */
-         c = *sp & 0x7f;
+         c = *sp & CHARMASK;
          if ((base != 10 || ((c != 'e') && (c != 'E')))
              && (base != 16 || ((c != 'p') && (c != 'P')))
              && (c != '\0')