aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/c-common.h5
-rw-r--r--gcc/c-tree.h6
-rw-r--r--gcc/config/i386/i386.c30
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/cp-tree.h3
-rw-r--r--gcc/cp/semantics.c2
-rw-r--r--gcc/emit-rtl.c23
-rw-r--r--gcc/errors.h2
-rw-r--r--gcc/f/ChangeLog5
-rw-r--r--gcc/f/expr.c2
-rw-r--r--gcc/intl/ChangeLog7
-rw-r--r--gcc/intl/dcgettext.c3
-rw-r--r--gcc/intl/localealias.c2
-rw-r--r--gcc/java/ChangeLog4
-rw-r--r--gcc/java/class.c2
-rw-r--r--gcc/regrename.c34
17 files changed, 94 insertions, 56 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 38eeb62..5c7d740 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
+
+ * c-common.h: Prototype min_precision and c_build_qualified_type here...
+ * c-tree.h: ... not here.
+ * errors.h: Prototype fancy_abort.
+
+ * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
+ HOST_BITS_PER_WIDE_INT == 64 ifdef block.
+ * regrename.c (regrename_optimize): Make control flow explicit.
+ (replace_reg_in_block): Initialize reg_use to 0.
+
+ * i386.c (legitimate_address_p): Rename error label to
+ report_error to avoid namespace clash.
+
2000-08-02 Kazu Hirata <kazu@hxi.com>
* fold-const.c: Fix formatting.
diff --git a/gcc/c-common.h b/gcc/c-common.h
index ba5d0fa..a7675dd 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -260,6 +260,11 @@ extern tree truthvalue_conversion PARAMS ((tree));
extern tree type_for_mode PARAMS ((enum machine_mode, int));
extern tree type_for_size PARAMS ((unsigned, int));
+extern unsigned int min_precision PARAMS ((tree, int));
+
+/* Add qualifiers to a type, in the fashion for C. */
+extern tree c_build_qualified_type PARAMS ((tree, int));
+
/* Build tree nodes and builtin functions common to both C and C++ language
frontends. */
extern void c_common_nodes_and_builtins PARAMS ((int, int, int));
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index 0bb4efb..2123607 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -151,16 +151,12 @@ extern void c_parse_init PARAMS ((void));
/* in c-aux-info.c */
extern void gen_aux_info_record PARAMS ((tree, int, int, int));
-/* In c-common.c */
-extern unsigned int min_precision PARAMS ((tree, int));
-
/* in c-convert.c */
extern tree convert PARAMS ((tree, tree));
/* in c-decl.c */
extern tree build_enumerator PARAMS ((tree, tree));
-/* Add qualifiers to a type, in the fashion for C. */
-extern tree c_build_qualified_type PARAMS ((tree, int));
+
#define c_build_type_variant(TYPE, CONST_P, VOLATILE_P) \
c_build_qualified_type (TYPE, \
((CONST_P) ? TYPE_QUAL_CONST : 0) | \
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 68a78e9..e8e984a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2396,7 +2396,7 @@ legitimate_address_p (mode, addr, strict)
if (! ix86_decompose_address (addr, &parts))
{
reason = "decomposition failed";
- goto error;
+ goto report_error;
}
base = parts.base;
@@ -2417,20 +2417,20 @@ legitimate_address_p (mode, addr, strict)
if (GET_CODE (base) != REG)
{
reason = "base is not a register";
- goto error;
+ goto report_error;
}
if (GET_MODE (base) != Pmode)
{
reason = "base is not in Pmode";
- goto error;
+ goto report_error;
}
if ((strict && ! REG_OK_FOR_BASE_STRICT_P (base))
|| (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (base)))
{
reason = "base is not valid";
- goto error;
+ goto report_error;
}
}
@@ -2447,20 +2447,20 @@ legitimate_address_p (mode, addr, strict)
if (GET_CODE (index) != REG)
{
reason = "index is not a register";
- goto error;
+ goto report_error;
}
if (GET_MODE (index) != Pmode)
{
reason = "index is not in Pmode";
- goto error;
+ goto report_error;
}
if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (index))
|| (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (index)))
{
reason = "index is not valid";
- goto error;
+ goto report_error;
}
}
@@ -2471,13 +2471,13 @@ legitimate_address_p (mode, addr, strict)
if (!index)
{
reason = "scale without index";
- goto error;
+ goto report_error;
}
if (scale != 2 && scale != 4 && scale != 8)
{
reason = "scale is not a valid multiplier";
- goto error;
+ goto report_error;
}
}
@@ -2489,13 +2489,13 @@ legitimate_address_p (mode, addr, strict)
if (!CONSTANT_ADDRESS_P (disp))
{
reason = "displacement is not constant";
- goto error;
+ goto report_error;
}
if (GET_CODE (disp) == CONST_DOUBLE)
{
reason = "displacement is a const_double";
- goto error;
+ goto report_error;
}
if (flag_pic && SYMBOLIC_CONST (disp))
@@ -2503,7 +2503,7 @@ legitimate_address_p (mode, addr, strict)
if (! legitimate_pic_address_disp_p (disp))
{
reason = "displacement is an invalid pic construct";
- goto error;
+ goto report_error;
}
/* This code used to verify that a symbolic pic displacement
@@ -2519,7 +2519,7 @@ legitimate_address_p (mode, addr, strict)
return *(&a+i);
}
- This code nonsential, but results in addressing
+ This code is nonsensical, but results in addressing
GOT table with pic_offset_table_rtx base. We can't
just refuse it easilly, since it gets matched by
"addsi3" pattern, that later gets split to lea in the
@@ -2534,7 +2534,7 @@ legitimate_address_p (mode, addr, strict)
|| (base != NULL_RTX || index != NULL_RTX))
{
reason = "displacement is an invalid half-pic reference";
- goto error;
+ goto report_error;
}
}
}
@@ -2544,7 +2544,7 @@ legitimate_address_p (mode, addr, strict)
fprintf (stderr, "Success.\n");
return TRUE;
-error:
+report_error:
if (TARGET_DEBUG_ADDR)
{
fprintf (stderr, "Error: %s\n", reason);
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 12becdb..84b1cab 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cp-tree.h: Don't prototype min_precision here.
+ (my_friendly_assert): Cast expression to void.
+ * semantics.c (do_poplevel): Initialize scope_stmts.
+
2000-08-02 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (DECL_NEEDED_P): Tweak.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index d949fcb..ec2646c 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3246,7 +3246,6 @@ extern tree convert_and_check PARAMS ((tree, tree));
extern void overflow_warning PARAMS ((tree));
extern void unsigned_conversion_warning PARAMS ((tree, tree));
extern void c_apply_type_quals_to_decl PARAMS ((int, tree));
-extern unsigned int min_precision PARAMS ((tree, int));
/* Read the rest of the current #-directive line. */
#if USE_CPPLIB
@@ -4628,7 +4627,7 @@ extern void friendly_abort PARAMS ((int, const char *,
#define my_friendly_abort(N) \
friendly_abort (N, __FILE__, __LINE__, __FUNCTION__)
-#define my_friendly_assert(EXP, N) \
+#define my_friendly_assert(EXP, N) (void) \
(((EXP) == 0) ? (friendly_abort (N, __FILE__, __LINE__, __FUNCTION__), 0) : 0)
extern tree store_init_value PARAMS ((tree, tree));
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index f8d39bf..066f675 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -140,7 +140,7 @@ do_poplevel ()
if (stmts_are_full_exprs_p ())
{
- tree scope_stmts;
+ tree scope_stmts = NULL_TREE;
if (!processing_template_decl)
scope_stmts = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0);
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 440009b..122c585 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -931,7 +931,6 @@ gen_lowpart_common (mode, x)
REAL_VALUE_TYPE r;
long i[4]; /* Only the low 32 bits of each 'long' are used. */
int endian = WORDS_BIG_ENDIAN ? 1 : 0;
- int c;
REAL_VALUE_FROM_CONST_DOUBLE (r, x);
switch (GET_MODE (x))
@@ -959,16 +958,20 @@ gen_lowpart_common (mode, x)
#if HOST_BITS_PER_WIDE_INT == 32
return immed_double_const (i[endian], i[1-endian], mode);
#else
- if (HOST_BITS_PER_WIDE_INT != 64)
- abort();
- for (c = 0; c < 4; c++)
- i[c] &= 0xffffffffL;
+ {
+ int c;
+
+ if (HOST_BITS_PER_WIDE_INT != 64)
+ abort();
+ for (c = 0; c < 4; c++)
+ i[c] &= 0xffffffffL;
- return immed_double_const (i[endian*3] |
- (((HOST_WIDE_INT) i[1+endian]) << 32),
- i[2-endian] |
- (((HOST_WIDE_INT) i[3-endian*3]) << 32),
- mode);
+ return immed_double_const (i[endian*3] |
+ (((HOST_WIDE_INT) i[1+endian]) << 32),
+ i[2-endian] |
+ (((HOST_WIDE_INT) i[3-endian*3]) << 32),
+ mode);
+ }
#endif
}
#endif /* ifndef REAL_ARITHMETIC */
diff --git a/gcc/errors.h b/gcc/errors.h
index 843c1c8..e782d20 100644
--- a/gcc/errors.h
+++ b/gcc/errors.h
@@ -29,6 +29,8 @@ extern void warning PARAMS ((const char *format, ...)) ATTRIBUTE_PRINTF_1;
extern void error PARAMS ((const char *format, ...)) ATTRIBUTE_PRINTF_1;
extern void fatal PARAMS ((const char *format, ...))
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
+extern void fancy_abort PARAMS ((const char *file, int line, const char *func))
+ ATTRIBUTE_NORETURN;
extern int have_error;
extern const char *progname;
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index e79c92d..504d5cb 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,8 @@
+2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
+
+ * expr.c (ffeexpr_finished_): Cast signed side of ?:
+ expression to bool.
+
2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
* lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
diff --git a/gcc/f/expr.c b/gcc/f/expr.c
index 82b9f47..2a46a9d 100644
--- a/gcc/f/expr.c
+++ b/gcc/f/expr.c
@@ -13162,7 +13162,7 @@ again: /* :::::::::::::::::::: */
error = (expr == NULL)
|| ((ffeinfo_rank (info) != 0) ?
ffe_is_pedantic () /* F77 C5. */
- : (ffeinfo_kindtype (info) != ffecom_label_kind ()))
+ : (bool) (ffeinfo_kindtype (info) != ffecom_label_kind ()))
|| (ffebld_op (expr) != FFEBLD_opSYMTER);
break;
diff --git a/gcc/intl/ChangeLog b/gcc/intl/ChangeLog
index 00452d8..48d0d70 100644
--- a/gcc/intl/ChangeLog
+++ b/gcc/intl/ChangeLog
@@ -1,4 +1,11 @@
+2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
+
+ * dcgettext.c (find_msg): Initialize act before loop.
+ (guess_category_value): Add dummy uses of both parameters.
+ * localealias.c (read_alias_file): Cast arg of strchr to char *.
+
2000-06-06 Philipp Thomas <pthomas@suse.de>
+
* Makefile.in: Add -DIN_GCC to DEFS, add appropriate -I switches.
* dcgettext.c: Define _GNU_SOURCE before any system header is
included. Guard getcwd declaration with HAVE_DECL_GETCWD.
diff --git a/gcc/intl/dcgettext.c b/gcc/intl/dcgettext.c
index 4399b71..a830f1d 100644
--- a/gcc/intl/dcgettext.c
+++ b/gcc/intl/dcgettext.c
@@ -455,6 +455,7 @@ find_msg (domain_file, msgid)
/* Now we try the default method: binary search in the sorted
array of messages. */
bottom = 0;
+ act = 0;
top = domain->nstrings;
while (bottom < top)
{
@@ -547,6 +548,8 @@ guess_category_value (category, categoryname)
const char *categoryname;
{
const char *retval;
+ (void) category; /* shut up compiler */
+ (void) categoryname; /* ditto */
/* The highest priority value is the `LANGUAGE' environment
variable. This is a GNU extension. */
diff --git a/gcc/intl/localealias.c b/gcc/intl/localealias.c
index 7c2f6cc..513cdc7 100644
--- a/gcc/intl/localealias.c
+++ b/gcc/intl/localealias.c
@@ -257,7 +257,7 @@ read_alias_file (fname, fname_len)
/* Possibly not the whole line fits into the buffer. Ignore
the rest of the line. */
- if (strchr (buf, '\n') == NULL)
+ if (strchr ((char *)buf, '\n') == NULL)
{
char altbuf[BUFSIZ];
do
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 9c7c1e4..26762bd 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,7 @@
+2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
+
+ * class.c (build_dtable_decl): Initialize dummy.
+
2000-07-27 Tom Tromey <tromey@cygnus.com>
Anthony Green <green@cygnus.com>
Alexandre Petit-Bianco <apbianco@cygnus.com>
diff --git a/gcc/java/class.c b/gcc/java/class.c
index a291c57..7cd6e66 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -1698,7 +1698,7 @@ build_dtable_decl (type)
TYPE. */
if (current_class == type)
{
- tree dummy, aomt, n;
+ tree dummy = NULL_TREE, aomt, n;
dtype = make_node (RECORD_TYPE);
PUSH_FIELD (dtype, dummy, "class", class_ptr_type);
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 5f41f6b..b29046b 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -347,32 +347,26 @@ regrename_optimize ()
if (consider_available (reg_use, avail_reg,
&avail_regs, rc, &du,
def_idx[def]))
- break;
+ goto found_avail_reg;
}
- if (ar_idx == FIRST_PSEUDO_REGISTER)
+ if (rtl_dump_file)
{
- if (rtl_dump_file)
- {
- fprintf (rtl_dump_file,
- "Register %s in class %s",
- reg_names[r], reg_class_names[rc]);
- fprintf (rtl_dump_file,
- " in insn %d",
- INSN_UID (VARRAY_RTX (uid_ruid,
- def_idx[def])));
-
- if (TEST_BIT (du.require_call_save_reg,
- def_idx[def]))
- fprintf (rtl_dump_file, " crosses a call");
+ fprintf (rtl_dump_file, "Register %s in class %s",
+ reg_names[r], reg_class_names[rc]);
+ fprintf (rtl_dump_file, " in insn %d",
+ INSN_UID (VARRAY_RTX (uid_ruid,
+ def_idx[def])));
- fprintf (rtl_dump_file,
- ". No available registers\n");
- }
+ if (TEST_BIT (du.require_call_save_reg,
+ def_idx[def]))
+ fprintf (rtl_dump_file, " crosses a call");
- goto try_next_def;
+ fprintf (rtl_dump_file, ". No available registers\n");
}
+ goto try_next_def;
+ found_avail_reg:
SET_HARD_REG_BIT (renamed_regs, avail_reg);
CLEAR_HARD_REG_BIT (avail_regs, avail_reg);
@@ -530,7 +524,7 @@ replace_reg_in_block (du, uid_ruid, def, reg_def, avail_reg)
unsigned int r = REGNO (reg_def);
rtx death_note;
rtx reg_notes;
- rtx reg_use;
+ rtx reg_use = 0;
rtx new_reg = gen_rtx_REG (GET_MODE (reg_def), avail_reg);
rr_replace_reg (PATTERN (VARRAY_RTX (*uid_ruid, def)), reg_def, new_reg,