summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog97
-rw-r--r--gcc/Makefile.in2
-rw-r--r--gcc/c-lex.c2
-rw-r--r--gcc/cccp.c11
-rw-r--r--gcc/cexp.y11
-rw-r--r--gcc/cppfiles.c2
-rw-r--r--gcc/cppinit.c2
-rw-r--r--gcc/cpplib.c6
-rw-r--r--gcc/defaults.h2
-rw-r--r--gcc/final.c3
-rw-r--r--gcc/fold-const.c14
-rw-r--r--gcc/real.c13
12 files changed, 110 insertions, 55 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9f8908778af..c629f81dcfe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index ad582c4c49c..493d0805810 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -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
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index 2f8a8403d69..d7697067ac7 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -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;
}
diff --git a/gcc/cccp.c b/gcc/cccp.c
index e91d8cf1b4c..9a023334409 100644
--- a/gcc/cccp.c
+++ b/gcc/cccp.c
@@ -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;
diff --git a/gcc/cexp.y b/gcc/cexp.y
index 1fb2f5d9f42..83f4cede637 100644
--- a/gcc/cexp.y
+++ b/gcc/cexp.y
@@ -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];
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 59ee7c76f03..cc891d45729 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -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
{
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 5174da8d5bf..7d20b2c95c5 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -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;
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index cd8285b0d59..98bd9335c90 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -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';
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 0582c00c058..b551fea125f 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -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 \
{ \
diff --git a/gcc/final.c b/gcc/final.c
index ade9da92964..1d4666ed764 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -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);
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 991dddda973..e0d0f00cb4e 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -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;
}
diff --git a/gcc/real.c b/gcc/real.c
index 6acd2bf376a..2022aacbeb9 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -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')
OpenPOWER on IntegriCloud