+Tue Jan 27 23:11:11 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. Add
+ prototype for `handle_sysv_pragma', and make it static. Add
+ parentheses around assignment used as truth value.
+
+ * combine.c (combine_instructions): Protect variable `prev' with
+ macro HAVE_cc0.
+ (can_combine_p): Protect variable `link' with AUTO_INC_DEC.
+ (extract_left_shift): Add parentheses around operand of &.
+ (merge_outer_ops): Avoid an empty body in an else-statement.
+ (gen_rtx_combine): Remove unused variable `i'.
+
+ * sparc/gmon-sol2.c: Include <fcntl.h>. Make return type of
+ function monstartup `void'. Likewise for internal_mcount. Add
+ `static void' prototype for moncontrol. Reconcile sprintf format
+ vs. args.
+
+ * sparc/sparc.c: Include <stdlib.h> and <string.h>/<strings.h>.
+ Make return type of function_arg_slotno explicitly `int'.
+ (reg_unused_after): Add parentheses around assignment used as
+ truth value.
+ (save_regs): Add explicit braces to avoid ambiguous `else'.
+ (function_arg_slotno): Add parentheses around && within ||.
+ (function_arg_pass_by_reference): Likewise.
+ (sparc_flat_output_function_prologue): Reconcile fprintf format
+ vs. args.
+
+ * svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
+ assignment used as truth value.
+
+ * cplus-dem.c: Include <stdlib.h>.
+ (demangle_signature): Avoid an empty body in an else-statement.
+ (do_type): Remove unused variable `lvl'.
+
+ * cppexp.c: Don't have <stdlib.h> depend on MULTIBYTE_CHARS.
+ Include <string.h>/<strings.h>.
+ (cpp_lex): Remove unused variable `namelen'.
+ (cpp_lex): Explicitly declare `num_chars' as an int.
+
+ * cpplib.c: Avoid duplicate inclusion of <stdlib.h>, include
+ <unistd.h> instead. Explicitly declare is_system_include
+ returning int.
+ (make_assertion): Remove unused variable `kt'.
+ (cpp_expand_to_buffer): Hide variable `obuf'.
+ (output_line_command): Remove unused variables, `line_end',
+ `line_cmd_buf' and `len'.
+ (macarg): Remove unused variable `arg_start'.
+ (special_symbol): Remove unused variable `i'. Add parentheses
+ around assignment used as truth value.
+ (do_include): Remove unused variables `pcfname' and `retried',
+ hide `pcf' and `pcfbuflimit'.
+ (do_line): Remove unused variable `i'.
+ (finclude): Hide variable `missing_newline'.
+ (cpp_handle_options): Remove unused variable `j'.
+ (read_token_list): Remove unused variable `eofp'.
+ (cpp_error_with_line): Remove unused variable `i'.
+ (cpp_warning_with_line): Likewise.
+ (cpp_pedwarn_with_line): Explicitly declare `column' as int.
+ (cpp_error_from_errno): Remove unused variable `i'.
+
+ * cse.c (invalidate): Add parentheses around assignment used as
+ truth value.
+ (find_best_addr): Move declaration of variable `our_cost' inside
+ the conditional macro where its used.
+ (fold_rtx): Avoid an empty body in an if-statement.
+ (cse_insn): Wrap variables `this_insn_cc0_mode' and
+ `this_insn_cc0' in macro HAVE_cc0.
+
+ * dwarf2out.c: Include <stdlib.h> and <string.h>/<string.h>.
+ (ASM_OUTPUT_DWARF_DATA8): Reconcile format vs. args in fprintf's.
+ (output_uleb128): Likewise.
+ (output_sleb128): Likewise.
+ (output_cfi): Likewise.
+ (output_call_frame_info): Remove unused variables `j', `fde_size'
+ and `fde_pad'.
+ (comp_unit_has_inlines): Hide declaration as per rest of file.
+ (size_of_line_prolog): Correct typo in prototype.
+ (add_arange): Likewise.
+ (output_aranges): Likewise.
+ (add_name_and_src_coords_attributes): Likewise.
+ (gen_array_type_die): Likewise.
+ (gen_inlined_subroutine_die): Likewise.
+ (equate_decl_number_to_die): Remove unused variable `i'.
+ (print_die): Reconcile format vs. args in fprintf's.
+ (print_dwarf_line_table): Likewise.
+ (output_die): Likewise.
+ (output_line_info): Likewise.
+ (add_subscript_info): Avoid an empty body in an else-statement.
+ (gen_subprogram_die): Remove unused variable `fp_loc'.
+
+ * dwarfout.c: Explicitly declare `next_pubname_number' as int.
+ Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE
+ macro. Protect `src_coords_attribute' prototype with
+ DWARF_DECL_COORDINATES macro. Hide `output_entry_point_die'
+ prototype as in the rest of the file. Likewise for
+ `output_pointer_type_die' and `output_reference_type_die'. Remove
+ prototype for `type_of_for_scope'.
+ (output_unsigned_leb128): Reconcile format vs. args in fprintf.
+ (type_attribute): Add explicit braces to avoid ambiguous `else'.
+
+ * final.c: Include <stdlib.h> and <string.h>/<strings.h>.
+ (shorten_branches): Protect declaration of tmp_length with
+ SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros.
+ (profile_function): Protect declaration of `sval' and `cxt'
+ variables with appropriate macros.
+ (final_scan_insn): Likewise for `note' variable. Add explicit
+ braces to avoid empty body in an if-statement.
+ (output_asm_insn): Move variable `i' inside macro conditional
+ where it is used. Add parentheses around assignment used as truth
+ value.
+ (asm_fprintf) Likewise, likewise.
+
+ * fix-header.c (main): Remove unused variable `done'. Protect
+ declaration of `i' with FIXPROTO_IGNORE_LIST.
+
+ * pexecute.c: Include <unistd.h>. Prototype `my_strerror'.
+
+ * print-rtl.c (print_inline_rtx): Explicitly declare the parameter
+ `ind'.
+
+ * profile.c: Include <string.h>/<strings.h>.
+ (instrument_arcs): Remove unused variables `note', `inverted',
+ `zero' and `neg_one'.
+ (branch_prob): Avoid empty body in an if-statement.
+
+ * regclass.c: Include <stdlib.h>.
+ (reg_alternate_class): Explicitly declare parameter `regno'.
+
+ * regmove.c (regmove_optimize): Remove unused variable `p'. Add
+ parentheses around assignment used as truth value.
+ (find_matches): Remove unused variables `output_operand' and
+ `matching_operand'.
+ (fixup_match_1): Remove statement with no effect: "if (0) ;".
+
+ * scan.c (sstring_append): Explicitly declare `count' as int.
+ (scan_string): Explicitly declare parameter `init' as int.
+
+ * sched.c: Include <stdlib.h>.
+ (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |.
+ (rank_for_schedule): Add parentheses around assignment used as
+ truth value.
+ (schedule_block): Likewise.
+ (regno_use_in): Likewise.
+ (schedule_insns): Remove unused variable `i'.
+
+ * toplev.c: Include <stdlib.h> and <string.h>/<strings.h>.
+ (v_message_with_decl): Remove unused variable `n'.
+ (botch): Explicitly declare parameter `s' as char *.
+ (main): Add parentheses around assignment used as truth value.
+
+ * tree.c (make_node): Protect the variable `kind' with the
+ GATHER_STATISTICS macro.
+ (real_value_from_int_cst): Move variable `e' inside conditional
+ macro area where it is used.
+ (tree_last): Add parentheses around assignment used as truth value.
+ (build1): Protect the variable `kind' with the GATHER_STATISTICS
+ macro.
+ (print_obstack_statistics): Reconcile format vs. args in fprintf.
+ Protect variables `i', `total_nodes', and `total_bytes' with the
+ GATHER_STATISTICS macro.
+
Tue Jan 27 23:01:55 1998 Mike Stump (mrs@wrs.com)
* m32r.md, mips.md, mn10200.md, mn10300.md, pyr.md: Add
#include "config.h"
#include <stdio.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
#include "tree.h"
#include "rtl.h"
#include "regs.h"
int, int, int));
static int restore_regs PROTO((FILE *, int, int, char *, int, int));
static void build_big_number PROTO((FILE *, int, char *));
-static function_arg_slotno PROTO((const CUMULATIVE_ARGS *,
+static int function_arg_slotno PROTO((const CUMULATIVE_ARGS *,
enum machine_mode, tree, int, int,
int *, int *));
{
enum rtx_code code, prev_code = UNKNOWN;
- while (insn = NEXT_INSN (insn))
+ while ((insn = NEXT_INSN (insn)))
{
if (prev_code == CALL_INSN && call_used_regs[REGNO (reg)])
return 1;
for (i = low; i < high; i += 2)
{
if (regs_ever_live[i] && ! call_used_regs[i])
- if (regs_ever_live[i+1] && ! call_used_regs[i+1])
- {
- fprintf (file, "\tstd %s,[%s+%d]\n",
- reg_names[i], base, offset + 4 * n_regs);
- if (dwarf2out_do_frame ())
- {
- char *l = dwarf2out_cfi_label ();
- dwarf2out_reg_save (l, i, real_offset + 4 * n_regs);
- dwarf2out_reg_save (l, i+1, real_offset + 4 * n_regs + 4);
- }
- n_regs += 2;
- }
- else
- {
- fprintf (file, "\tst %s,[%s+%d]\n",
- reg_names[i], base, offset + 4 * n_regs);
- if (dwarf2out_do_frame ())
- dwarf2out_reg_save ("", i, real_offset + 4 * n_regs);
- n_regs += 2;
- }
- else if (regs_ever_live[i+1] && ! call_used_regs[i+1])
{
- fprintf (file, "\tst %s,[%s+%d]\n",
- reg_names[i+1], base, offset + 4 * n_regs + 4);
- if (dwarf2out_do_frame ())
- dwarf2out_reg_save ("", i + 1, real_offset + 4 * n_regs + 4);
- n_regs += 2;
+ if (regs_ever_live[i+1] && ! call_used_regs[i+1])
+ {
+ fprintf (file, "\tstd %s,[%s+%d]\n",
+ reg_names[i], base, offset + 4 * n_regs);
+ if (dwarf2out_do_frame ())
+ {
+ char *l = dwarf2out_cfi_label ();
+ dwarf2out_reg_save (l, i, real_offset + 4 * n_regs);
+ dwarf2out_reg_save (l, i+1, real_offset + 4 * n_regs + 4);
+ }
+ n_regs += 2;
+ }
+ else
+ {
+ fprintf (file, "\tst %s,[%s+%d]\n",
+ reg_names[i], base, offset + 4 * n_regs);
+ if (dwarf2out_do_frame ())
+ dwarf2out_reg_save ("", i, real_offset + 4 * n_regs);
+ n_regs += 2;
+ }
+ }
+ else
+ {
+ if (regs_ever_live[i+1] && ! call_used_regs[i+1])
+ {
+ fprintf (file, "\tst %s,[%s+%d]\n",
+ reg_names[i+1], base, offset + 4 * n_regs + 4);
+ if (dwarf2out_do_frame ())
+ dwarf2out_reg_save ("", i + 1, real_offset + 4 * n_regs + 4);
+ n_regs += 2;
+ }
}
}
}
}
if (TARGET_ARCH32
- || type && TREE_CODE (type) == UNION_TYPE)
+ || (type && TREE_CODE (type) == UNION_TYPE))
{
if (slotno >= SPARC_INT_ARG_MAX)
return -1;
{
if (TARGET_ARCH32)
{
- return (type && AGGREGATE_TYPE_P (type)
+ return ((type && AGGREGATE_TYPE_P (type))
|| mode == TFmode || mode == TCmode);
}
else
/* This is only for the human reader. */
fprintf (file, "\t%s#PROLOGUE# 0\n", ASM_COMMENT_START);
- fprintf (file, "\t%s# vars= %d, regs= %d/%d, args= %d, extra= %d\n",
+ fprintf (file, "\t%s# vars= %ld, regs= %d/%d, args= %d, extra= %ld\n",
ASM_COMMENT_START,
current_frame_info.var_size,
current_frame_info.gp_reg_size / 4,
# include <limits.h>
#endif
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
#endif
#ifdef HAVE_STRING_H
#endif
static int lookup_import ();
static int redundant_include_p ();
-static is_system_include ();
+static int is_system_include ();
static struct file_name_map *read_name_map ();
static char *read_filename_string ();
static int open_include_file ();
char *option;
U_CHAR *str;
{
- struct directive *kt;
U_CHAR *buf, *p, *q;
/* Copy the entire option so we can modify it. */
int length;
{
register cpp_buffer *ip;
+#if 0
cpp_buffer obuf;
+#endif
U_CHAR *limit = buf + length;
U_CHAR *buf1;
#if 0
int conditional;
enum file_change_code file_change;
{
- int len;
- char *line_cmd_buf, *line_end;
long line, col;
cpp_buffer *ip = CPP_BUFFER (pfile);
{
int paren = 0;
enum cpp_token token;
- long arg_start = CPP_WRITTEN (pfile);
char save_put_out_comments = CPP_OPTIONS (pfile)->put_out_comments;
CPP_OPTIONS (pfile)->put_out_comments = 0;
cpp_reader *pfile;
{
char *buf;
- int i, len;
+ int len;
int true_indepth;
cpp_buffer *ip = NULL;
struct tm *timebuf;
goto oops;
if (ip->cur[0] == 'L' && (ip->cur[1] == '\'' || ip->cur[1] == '"'))
goto oops;
- if (hp = cpp_lookup (pfile, ip->cur, -1, -1))
+ if ((hp = cpp_lookup (pfile, ip->cur, -1, -1)))
{
#if 0
if (pcp_outfile && pcp_inside_if
int skip_dirs = (keyword->type == T_INCLUDE_NEXT);
char *fname; /* Dynamically allocated fname buffer */
char *pcftry;
- char *pcfname;
U_CHAR *fbeg, *fend; /* Beginning and end of fname */
enum cpp_token token;
int f; /* file number */
- int retried = 0; /* Have already tried macro
- expanding the include line */
int angle_brackets = 0; /* 0 for "...", 1 for <...> */
- int pcf = -1;
char *pcfbuf;
+#if 0
+ int pcf = -1;
char *pcfbuflimit;
+#endif
int pcfnum;
f= -1; /* JF we iz paranoid! */
long old_written = CPP_WRITTEN (pfile);
enum file_change_code file_change = same_file;
enum cpp_token token;
- int i;
token = get_directive_token (pfile);
long i;
int length;
cpp_buffer *fp; /* For input stack frame */
+#if 0
int missing_newline = 0;
+#endif
if (fstat (f, &st) < 0)
{
Let's include also any that were specified earlier
on the command line. That way we can get rid of any
that were passed automatically in from GCC. */
- int j;
opts->inhibit_predefs = 1;
for (ptr = &opts->pending; *ptr != NULL; )
{
{
struct arglist *temp;
long name_written = CPP_WRITTEN (pfile);
- int eofp = 0; int c;
+ int c;
cpp_skip_hspace (pfile);
char *msg;
char *arg1, *arg2, *arg3;
{
- int i;
cpp_buffer *ip = cpp_file_buffer (pfile);
cpp_print_containing_files (pfile);
char *msg;
char *arg1, *arg2, *arg3;
{
- int i;
cpp_buffer *ip;
if (CPP_OPTIONS (pfile)->inhibit_warnings)
void
cpp_pedwarn_with_line (pfile, line, column, msg, arg1, arg2, arg3)
cpp_reader *pfile;
- int line;
+ int line, column;
char *msg;
char *arg1, *arg2, *arg3;
{
cpp_reader *pfile;
char *name;
{
- int i;
cpp_buffer *ip = cpp_file_buffer (pfile);
cpp_print_containing_files (pfile);
represents a function or data object defined in this compilation
unit which has "extern" linkage. */
-static next_pubname_number = 0;
+static int next_pubname_number = 0;
#define NEXT_DIE_NUM pending_sibling_stack[pending_siblings-1]
static void mod_fund_type_attribute PROTO((tree, int, int));
static inline void user_def_type_attribute PROTO((tree));
static void mod_u_d_type_attribute PROTO((tree, int, int));
+#ifdef USE_ORDERING_ATTRIBUTE
static inline void ordering_attribute PROTO((unsigned));
+#endif /* defined(USE_ORDERING_ATTRIBUTE) */
static void subscript_data_attribute PROTO((tree));
static void byte_size_attribute PROTO((tree));
static inline void bit_offset_attribute PROTO((tree));
static inline void inline_attribute PROTO((tree));
static inline void containing_type_attribute PROTO((tree));
static inline void abstract_origin_attribute PROTO((tree));
+#ifdef DWARF_DECL_COORDINATES
static inline void src_coords_attribute PROTO((unsigned, unsigned));
+#endif /* defined(DWARF_DECL_COORDINATES) */
static inline void pure_or_virtual_attribute PROTO((tree));
static void name_and_src_coords_attributes PROTO((tree));
static void type_attribute PROTO((tree, int, int));
static char *function_start_label PROTO((tree));
static void output_array_type_die PROTO((void *));
static void output_set_type_die PROTO((void *));
+#if 0
static void output_entry_point_die PROTO((void *));
+#endif
static void output_inlined_enumeration_type_die PROTO((void *));
static void output_inlined_structure_type_die PROTO((void *));
static void output_inlined_union_type_die PROTO((void *));
static void output_inlined_subroutine_die PROTO((void *));
static void output_local_variable_die PROTO((void *));
static void output_member_die PROTO((void *));
+#if 0
static void output_pointer_type_die PROTO((void *));
static void output_reference_type_die PROTO((void *));
+#endif
static void output_ptr_to_mbr_type_die PROTO((void *));
static void output_compile_unit_die PROTO((void *));
static void output_string_type_die PROTO((void *));
static void end_sibling_chain PROTO((void));
static void output_formal_types PROTO((tree));
static void pend_type PROTO((tree));
-static inline int type_of_for_scope PROTO((tree, tree));
static void output_pending_types_for_scope PROTO((tree));
static void output_type PROTO((tree, tree));
static void output_tagged_type_instantiation PROTO((tree));
byte |= 0x80;
fprintf (asm_out_file, "\t%s\t0x%x", ASM_BYTE_OP, (unsigned) byte);
if (flag_debug_asm && value == 0)
- fprintf (asm_out_file, "\t%s ULEB128 number - value = %u",
+ fprintf (asm_out_file, "\t%s ULEB128 number - value = %lu",
ASM_COMMENT_START, orig_value);
fputc ('\n', asm_out_file);
}
}
fprintf (asm_out_file, "\t%s\t0x%x", ASM_BYTE_OP, (unsigned) byte);
if (flag_debug_asm && more == 0)
- fprintf (asm_out_file, "\t%s SLEB128 number - value = %d",
+ fprintf (asm_out_file, "\t%s SLEB128 number - value = %ld",
ASM_COMMENT_START, orig_value);
fputc ('\n', asm_out_file);
}
|| TYPE_READONLY (type) || TYPE_VOLATILE (type));
if (type_is_fundamental (root_type (type)))
- if (root_type_modified)
+ {
+ if (root_type_modified)
mod_fund_type_attribute (type, decl_const, decl_volatile);
- else
+ else
fund_type_attribute (fundamental_type_code (type));
+ }
else
- if (root_type_modified)
+ {
+ if (root_type_modified)
mod_u_d_type_attribute (type, decl_const, decl_volatile);
- else
+ else
/* We have to get the type_main_variant here (and pass that to the
`user_def_type_attribute' routine) because the ..._TYPE node we
have might simply be a *copy* of some original type node (where
only creates labels for DIEs representing *main variants*, and it
never even knows about non-main-variants.) */
user_def_type_attribute (type_main_variant (type));
+ }
}
/* Given a tree pointer to a struct, class, union, or enum type node, return
operand_number < insn_n_operands[insn_code_number];
operand_number++)
{
- rtx p, src, dst, src_subreg;
+ rtx src, dst, src_subreg;
enum reg_class src_class, dst_class;
match_number = match.with[operand_number];
}
/* If there is a REG_DEAD note for DST on P, then remove
it, because DST is now set there. */
- if (dst_note = find_reg_note (p, REG_DEAD, dst))
+ if ((dst_note = find_reg_note (p, REG_DEAD, dst)))
remove_note (p, dst_note);
dstno = REGNO (dst);
for (operand_number = 0; operand_number < insn_n_operands[insn_code_number];
operand_number++)
{
- int output_operand = 0;
- int matching_operand = operand_number;
char *p, c;
int i = 0;
}
}
}
- if (0) ;
+
#if defined (HAVE_PRE_INCREMENT) || defined (HAVE_PRE_DECREMENT)
else if ((code == PLUS || code == MINUS) && insn_const
&& try_auto_increment (p, insn, 0, src, insn_const, 1))
\f
#include "config.h"
#include <stdio.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
#include "rtl.h"
#include "basic-block.h"
#include "regs.h"
#define UNIT_BLOCKED(B) ((B) >> (2 * BLOCKAGE_BITS))
#define BLOCKAGE_RANGE(B) \
(((((B) >> BLOCKAGE_BITS) & BLOCKAGE_MASK) << (HOST_BITS_PER_INT / 2)) \
- | (B) & BLOCKAGE_MASK)
+ | ((B) & BLOCKAGE_MASK))
/* Encodings of the `<name>_unit_blockage_range' function. */
#define MIN_BLOCKAGE_COST(R) ((R) >> (HOST_BITS_PER_INT / 2))
int value;
/* Choose the instruction with the highest priority, if different. */
- if (value = INSN_PRIORITY (tmp) - INSN_PRIORITY (tmp2))
+ if ((value = INSN_PRIORITY (tmp) - INSN_PRIORITY (tmp2)))
return value;
if (last_scheduled_insn)
else
tmp2_class = 2;
- if (value = tmp_class - tmp2_class)
+ if ((value = tmp_class - tmp2_class))
return value;
}
register int stalls;
for (stalls = 1; stalls < INSN_QUEUE_SIZE; stalls++)
- if (insn = insn_queue[NEXT_Q_AFTER (q_ptr, stalls)])
+ if ((insn = insn_queue[NEXT_Q_AFTER (q_ptr, stalls)]))
{
for (; insn; insn = NEXT_INSN (insn))
{
{
if (fmt[i] == 'e')
{
- if (tem = regno_use_in (regno, XEXP (x, i)))
+ if ((tem = regno_use_in (regno, XEXP (x, i))))
return tem;
}
else if (fmt[i] == 'E')
for (j = XVECLEN (x, i) - 1; j >= 0; j--)
- if (tem = regno_use_in (regno , XVECEXP (x, i, j)))
+ if ((tem = regno_use_in (regno , XVECEXP (x, i, j))))
return tem;
}
{
int max_uid = MAX_INSNS_PER_SPLIT * (get_max_uid () + 1);
int b;
- int i;
rtx insn;
/* Taking care of this degenerate case makes the rest of
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
char *s;
va_list ap;
{
- char *n, *p;
+ char *p;
fprintf (stderr, "%s:%d: ",
DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
void
botch (s)
+ char * s;
{
abort ();
}
optimize_size = 1;
else
{
- while (c = *p++)
+ while ((c = *p++))
if (! (c >= '0' && c <= '9'))
break;
if (c == 0)
register int length;
register struct obstack *obstack = current_obstack;
register int i;
+#ifdef GATHER_STATISTICS
register tree_node_kind kind;
+#endif
switch (type)
{
tree type, i;
{
REAL_VALUE_TYPE d;
- REAL_VALUE_TYPE e;
- /* Some 386 compilers mishandle unsigned int to float conversions,
- so introduce a temporary variable E to avoid those bugs. */
#ifdef REAL_ARITHMETIC
if (! TREE_UNSIGNED (TREE_TYPE (i)))
REAL_VALUE_FROM_UNSIGNED_INT (d, TREE_INT_CST_LOW (i),
TREE_INT_CST_HIGH (i), TYPE_MODE (type));
#else /* not REAL_ARITHMETIC */
+ /* Some 386 compilers mishandle unsigned int to float conversions,
+ so introduce a temporary variable E to avoid those bugs. */
if (TREE_INT_CST_HIGH (i) < 0 && ! TREE_UNSIGNED (TREE_TYPE (i)))
{
+ REAL_VALUE_TYPE e;
+
d = (double) (~ TREE_INT_CST_HIGH (i));
e = ((double) ((HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT / 2))
* (double) ((HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT / 2)));
}
else
{
+ REAL_VALUE_TYPE e;
+
d = (double) (unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (i);
e = ((double) ((HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT / 2))
* (double) ((HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT / 2)));
{
register tree next;
if (chain)
- while (next = TREE_CHAIN (chain))
+ while ((next = TREE_CHAIN (chain)))
chain = next;
return chain;
}
{
register struct obstack *obstack = expression_obstack;
register int i, length;
+#ifdef GATHER_STATISTICS
register tree_node_kind kind;
+#endif
register tree t;
#ifdef GATHER_STATISTICS
n_alloc += chunk->limit - &chunk->contents[0];
chunk = chunk->prev;
}
- fprintf (stderr, "obstack %s: %lu bytes, %d chunks\n",
+ fprintf (stderr, "obstack %s: %u bytes, %d chunks\n",
str, n_alloc, n_chunks);
}
void
dump_tree_statistics ()
{
+#ifdef GATHER_STATISTICS
int i;
int total_nodes, total_bytes;
+#endif
fprintf (stderr, "\n??? tree nodes created\n\n");
#ifdef GATHER_STATISTICS