* 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.
cp:
* cp-tree.h: Don't prototype min_precision here.
(my_friendly_assert): Cast expression to void.
* semantics.c (do_poplevel): Initialize scope_stmts.
f:
* expr.c (ffeexpr_finished_): Cast signed side of ?:
expression to bool.
java:
* class.c (build_dtable_decl): Initialize dummy.
intl:
* 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 *.
From-SVN: r35427
+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.
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));
/* 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) | \
if (! ix86_decompose_address (addr, &parts))
{
reason = "decomposition failed";
- goto error;
+ goto report_error;
}
base = parts.base;
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;
}
}
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;
}
}
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;
}
}
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))
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
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
|| (base != NULL_RTX || index != NULL_RTX))
{
reason = "displacement is an invalid half-pic reference";
- goto error;
+ goto report_error;
}
}
}
fprintf (stderr, "Success.\n");
return TRUE;
-error:
+report_error:
if (TARGET_DEBUG_ADDR)
{
fprintf (stderr, "Error: %s\n", reason);
+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.
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
#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));
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);
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))
#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 */
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;
+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.
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;
+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.
/* Now we try the default method: binary search in the sorted
array of messages. */
bottom = 0;
+ act = 0;
top = domain->nstrings;
while (bottom < top)
{
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. */
/* 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
+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>
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);
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);
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,