See ChangeLog.11 for details.
From-SVN: r17040
-Sun Dec 7 18:24:30 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+Wed Dec 10 18:38:56 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* Version 2.8.0 released.
+Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * libgcc2.c (__bb_exit_func): Fix test of return value of fopen.
+
+Wed Dec 10 07:07:37 1997 Bernd Schmidt <crux@starsky.Informatik.RWTH-Aachen.DE>
+ * combine.c (simplify_rtx, case ABS): Don't get confused by a
+ VOIDmode operand.
+
+Tue Dec 9 17:44:14 1997 David Edelsohn <edelsohn@mhpcc.edu>
+
+ * rs6000.h (FUNCTION_ARG_PADDING): Define.
+ * rs6000.c (function_arg_padding): New function.
+
+Tue Dec 9 08:53:56 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc.
+
+Mon Dec 8 19:23:58 1997 Pat Rankin <rankin@eql.caltech.edu>
+
+ * toplev.c (get_run_time): [#if VMS] Cast arg in times call.
+
+ * vax/xm-vms.h (HAVE_UNISTD_H): Define for DEC C.
+ * make-cccp.com [CC]: Add /Prefix=All for DEC C.
+
+Mon Dec 8 08:09:17 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * stmt.c (expand_decl_cleanup_no_eh): Properly return a value.
+
+ * fold-const.c (fold_convert): Don't flag overflow when converting
+ pointer to integer.
+
Sun Dec 7 09:42:05 1997 Pat Rankin <rankin@eql.caltech.edu>
* make-gcc.com (@make-l2): Pass along any command line arguments.
New option --enable-c-cpplib to configure script.
- Allow --with-cpu on configure command to specify a default CPU.
+ You can use --with-cpu on the configure command to specify the default
+ CPU that GCC should generate code for.
The -specs=file switch allows you to override default specs used in
invoking programs like cc1, as, etc.
case XOR:
return simplify_logical (x, last);
- case ABS:
+ case ABS:
/* (abs (neg <foo>)) -> (abs <foo>) */
if (GET_CODE (XEXP (x, 0)) == NEG)
SUBST (XEXP (x, 0), XEXP (XEXP (x, 0), 0));
- if (GET_CODE (XEXP (x, 0)) == ASM_OPERANDS)
- return x;
+ /* If the mode of the operand is VOIDmode (i.e. if it is ASM_OPERANDS),
+ do nothing. */
+ if (GET_MODE (XEXP (x, 0)) == VOIDmode)
+ break;
/* If operand is something known to be positive, ignore the ABS. */
if (GET_CODE (XEXP (x, 0)) == FFS || GET_CODE (XEXP (x, 0)) == ABS
#define FALSE 0
#define TRUE 1
+/* Other configurations get these via autoconfig. */
+#define STDC_HEADERS 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#ifdef __DECC
+#define HAVE_UNISTD_H 1
+#endif
+
#if defined(VAXC) || defined(__DECC)
/* if compiling with VAXC, need to fix problem with <stdio.h>
which defines a macro called FILE_TYPE that breaks "tree.h".
/* and define a local equivalent (sort of) for unlink */
#define unlink remove
-/* Specify the list of include file directories. */
-#define INCLUDE_DEFAULTS \
-{ \
- { "GNU_GXX_INCLUDE:", 1, 1 }, \
- { "GNU_CC_INCLUDE:", 0, 0 }, /* GNU includes */ \
- { "SYS$SYSROOT:[SYSLIB.]", 0, 0 }, /* VAX-11 "C" includes */ \
- { ".", 0, 1 }, /* Make normal VMS filespecs work. */ \
- { 0, 0, 0 } \
-}
-
/* Used by the preprocessor to limit size of disk I/O chunks.
64K - 1 is the maximum supported by VAXCRTL. Amounts in excess
of 35 blocks will bypass the VMS V6.x VIOC [Virtual I/O Cache],
#define QSORT_WORKAROUND /* do not use VAXCRTL's qsort */
/* use ANSI/SYSV style byte manipulation routines instead of BSD ones */
-#define bcopy(s,d,n) memcpy((d),(s),(n))
-#define bzero(d,n) memset((d),0,(n))
-#define bcmp(l,r,n) memcmp((l),(r),(n))
-#define index strchr
-#define rindex strrchr
-
/* rename all too-long external symbol names to avoid warnings */
#define bc_check_for_full_enumeration_handling bc_check_for_full_enum_handling
#define check_for_full_enumeration_handling check_for_full_enum_handling
#define current_function_uses_const_pool curfunc_uses_const_pool
#define current_function_uses_pic_offset_table curfunc_uses_pic_offset_table
#define dbxout_resume_previous_source_file dbxout_resume_previous_src_file
+#define expand_builtin_extract_return_addr expand_builtin_extract_ret_addr
+#define expand_builtin_set_return_addr_reg expand_builtin_set_ret_addr_reg
#define expand_start_loop_continue_elsewhere expnd_start_loop_cont_elsewhere
#define flag_schedule_insns_after_reload flag_sched_insns_after_reload
#define get_dynamic_handler_chain_libfunc get_dynamic_hndlr_chain_libfunc
#define lookup_name_current_level_global lookup_name_current_level_gbl
#define maybe_building_objc_message_expr maybe_building_objc_msg_expr
+#define mesg_implicit_function_declaration mesg_implicit_func_declaration
#define output_deferred_addressed_constants output_deferred_addr_constants
#define protect_cleanup_actions_with_terminate protect_cleanup_act_w_terminate
#define reg_overlap_mentioned_for_reload_p reg_overlap_mtnd_for_reload_p
/* Indicate an overflow if (1) ARG1 already overflowed,
or (2) force_fit_type indicates an overflow.
Tell force_fit_type that an overflow has already occurred
- if ARG1 is a too-large unsigned value and T is signed. */
+ if ARG1 is a too-large unsigned value and T is signed.
+ But don't indicate an overflow if converting a pointer. */
TREE_OVERFLOW (t)
= (TREE_OVERFLOW (arg1)
- | force_fit_type (t,
- (TREE_INT_CST_HIGH (arg1) < 0
- & (TREE_UNSIGNED (type)
- < TREE_UNSIGNED (TREE_TYPE (arg1))))));
+ || (force_fit_type (t,
+ (TREE_INT_CST_HIGH (arg1) < 0
+ & (TREE_UNSIGNED (type)
+ < TREE_UNSIGNED (TREE_TYPE (arg1)))))
+ && TREE_CODE (TREE_TYPE (arg1)) != POINTER_TYPE));
TREE_CONSTANT_OVERFLOW (t)
= TREE_OVERFLOW (t) | TREE_CONSTANT_OVERFLOW (arg1);
}
fprintf (stderr, "arc profiling: Error closing output file %s.\n",
ptr->filename);
}
- if ((da_file = fopen (ptr->filename, "w")) < 0)
+ if ((da_file = fopen (ptr->filename, "w")) == 0)
{
fprintf (stderr, "arc profiling: Can't open output file %s.\n",
ptr->filename);
$ if p1.eqs."DECC"
$ then
$ if f$trnlnm("DECC$CC_DEFAULT").nes."" then CC = "cc/DECC"
+$ CC = CC + "/Prefix=All"
$ LIBS = "alloca.obj" !DECC$SHR will be found implicitly by linker
$ define/noLog SYS DECC$LIBRARY_INCLUDE:
$ else
tree decl, cleanup;
{
int save_eh = using_eh_for_cleanups_p;
+ int result;
+
using_eh_for_cleanups_p = 0;
- expand_decl_cleanup (decl, cleanup);
+ result = expand_decl_cleanup (decl, cleanup);
using_eh_for_cleanups_p = save_eh;
+
+ return result;
}
/* Arrange for the top element of the dynamic cleanup chain to be
return (rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec
+ rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec);
#else /* VMS */
- times (&vms_times);
+ times ((void *) &vms_times);
return (vms_times.proc_user_time + vms_times.proc_system_time) * 10000;
#endif
#endif