diff --git a/gcc/ChangeLog.11 b/gcc/ChangeLog.11 index 571a63c35c8..7ea0d5e7e8d 100644 --- a/gcc/ChangeLog.11 +++ b/gcc/ChangeLog.11 @@ -1,7 +1,38 @@ -Sun Dec 7 18:24:30 1997 Richard Kenner +Wed Dec 10 18:38:56 1997 Richard Kenner * Version 2.8.0 released. +Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi + + * libgcc2.c (__bb_exit_func): Fix test of return value of fopen. + +Wed Dec 10 07:07:37 1997 Bernd Schmidt + * combine.c (simplify_rtx, case ABS): Don't get confused by a + VOIDmode operand. + +Tue Dec 9 17:44:14 1997 David Edelsohn + + * rs6000.h (FUNCTION_ARG_PADDING): Define. + * rs6000.c (function_arg_padding): New function. + +Tue Dec 9 08:53:56 1997 Richard Kenner + + * integrate.c (save_for_inline_copying): Make a new reg_parm_stack_loc. + +Mon Dec 8 19:23:58 1997 Pat Rankin + + * 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 + + * 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 * make-gcc.com (@make-l2): Pass along any command line arguments. diff --git a/gcc/NEWS b/gcc/NEWS index 203b9ab3e44..5f671a3ce61 100644 --- a/gcc/NEWS +++ b/gcc/NEWS @@ -44,7 +44,8 @@ New features in configuration, installation and specs file handling: 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. diff --git a/gcc/combine.c b/gcc/combine.c index 13e22b9bcd2..339c94943cd 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -4092,13 +4092,15 @@ simplify_rtx (x, op0_mode, last, in_dest) case XOR: return simplify_logical (x, last); - case ABS: + case ABS: /* (abs (neg )) -> (abs ) */ 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 diff --git a/gcc/config/vax/xm-vms.h b/gcc/config/vax/xm-vms.h index 430905b0483..a559a039476 100644 --- a/gcc/config/vax/xm-vms.h +++ b/gcc/config/vax/xm-vms.h @@ -22,6 +22,14 @@ Boston, MA 02111-1307, USA. */ #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 which defines a macro called FILE_TYPE that breaks "tree.h". @@ -69,16 +77,6 @@ Boston, MA 02111-1307, USA. */ /* 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], @@ -144,12 +142,6 @@ Boston, MA 02111-1307, USA. */ #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 @@ -165,11 +157,14 @@ Boston, MA 02111-1307, USA. */ #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 diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 0bc82264542..65a6d85efc0 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -1511,13 +1511,15 @@ fold_convert (t, arg1) /* 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); } diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index 5a1273995aa..ad51863e912 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -1531,7 +1531,7 @@ __bb_exit_func (void) 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); diff --git a/gcc/make-cccp.com b/gcc/make-cccp.com index 6e7f976d519..342c71015a4 100644 --- a/gcc/make-cccp.com +++ b/gcc/make-cccp.com @@ -33,6 +33,7 @@ $ else $ 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 diff --git a/gcc/stmt.c b/gcc/stmt.c index db0b77dc133..18390347831 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -4027,9 +4027,13 @@ expand_decl_cleanup_no_eh (decl, cleanup) 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 diff --git a/gcc/toplev.c b/gcc/toplev.c index 12d567656f0..17318e25c44 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1034,7 +1034,7 @@ get_run_time () 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