Paolo Bonzini [Sat, 1 Aug 2009 22:03:34 +0000 (22:03 +0000)]
expr.c (store_constructor): Use promote_decl_mode.
2009-04-17 Paolo Bonzini <bonzini@gnu.org>
* expr.c (store_constructor): Use promote_decl_mode. Remove
now write-only variable unsignedp.
(expand_expr_real_1): Use promote_decl_mode.
* expr.h (promote_function_mode, promote_decl_mode): New.
(promote_mode): Remove last argument.
* function.c (assign_temp): Drop last argument of promote_mode.
(assign_parm_find_data_types): Use promote_function_mode.
(assign_parm_setup_reg): Likewise.
(expand_function_end): Use promote_function_mode.
* calls.c (initialize_argument_information): Use promote_function_mode.
(precompute_arguments): Use promote_mode instead of checking if
only PROMOTE_FUNCTION_MODE is defined.
(expand_call): When making sibcall decisions, use promote_function_mode.
Below, remove an if for targetm.calls.promote_function_return and
and use promote_function_mode.
(emit_library_call_value_1): Use promote_function_mode, fix bug
where promote_mode was passed FOR_CALL == 0 for a return value in an
assertion.
* cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
* explow.c (promote_function_mode, promote_decl_mode): New.
(promote_mode): Keep only the FOR_CALL == 0 case.
* combine.c (setup_incoming_promotion): Remove test of
promote_function_args. Use promote_function_mode.
* stmt.c (expand_value_return): Use promote_decl_mode.
(expand_decl): Use promote_decl_mode.
* expr.c (store_constructor): Use promote_decl_mode. Remove
now write-only variable unsignedp.
(expand_expr_real_1): Use promote_decl_mode.
* expr.h (promote_function_mode, promote_decl_mode): New.
(promote_mode): Remove last argument.
* function.c (assign_temp): Drop last argument of promote_mode.
(assign_parm_find_data_types): Use promote_function_mode.
(assign_parm_setup_reg): Likewise.
(expand_function_end): Use promote_function_mode.
* calls.c (initialize_argument_information): Use promote_function_mode.
(precompute_arguments): Use promote_mode instead of checking if
only PROMOTE_FUNCTION_MODE is defined.
(expand_call): When making sibcall decisions, use promote_function_mode.
Below, remove an if for targetm.calls.promote_function_return and
and use promote_function_mode.
(emit_library_call_value_1): Use promote_function_mode, fix bug
where promote_mode was passed FOR_CALL == 0 for a return value in an
assertion.
* cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
* explow.c (promote_function_mode, promote_decl_mode): New.
(promote_mode): Keep only the FOR_CALL == 0 case.
* combine.c (setup_incoming_promotion): Remove test of
promote_function_args. Use promote_function_mode.
* stmt.c (expand_value_return): Use promote_decl_mode.
(expand_decl): Use promote_decl_mode.
Paul Thomas [Sat, 1 Aug 2009 13:45:12 +0000 (13:45 +0000)]
re PR fortran/40011 (Problems with -fwhole-file)
2009-08-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40011
* error.c : Add static flag 'warnings_not_errors'.
(gfc_error): If 'warnings_not_errors' is set, branch to code
from gfc_warning.
(gfc_clear_error): Reset 'warnings_not_errors'.
(gfc_errors_to_warnings): New function.
* options.c (gfc_post_options): If pedantic and flag_whole_file
change the latter to a value of 2.
* parse.c (parse_module): Add module namespace to gsymbol.
(resolve_all_program_units): New function.
(clean_up_modules): New function.
(translate_all_program_units): New function.
(gfc_parse_file): If whole_file, do not clean up module right
away and add derived types to namespace derived types. In
addition, call the three new functions above.
* resolve.c (not_in_recursive): New function.
(not_entry_self_reference): New function.
(resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN,
procedure must not be in the course of being resolved and
must return false for the two new functions. Pack away the
current derived type list before calling gfc_resolve for the
gsymbol namespace. It is unconditionally an error if the ranks
of the reference and ther procedure do not match. Convert
errors to warnings during call to gfc_procedure_use if not
pedantic or legacy.
(gfc_resolve): Set namespace resolved flag to -1 during
resolution and store current cs_base.
* trans-decl.c (gfc_get_symbol_decl): If whole_file compilation
substitute a use associated variable, if it is available in a
gsymbolnamespace.
(gfc_get_extern_function_decl): If the procedure is use assoc,
do not attempt to find it in a gsymbol because it could be an
interface. If the symbol exists in a module namespace, return
its backend_decl.
* trans-expr.c (gfc_trans_scalar_assign): If a derived type
assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs.
* trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a
boolean argument. Copy component backend_decls directly if the
components are derived types and from_gsym is true.
(gfc_get_derived_type): If whole_file copy the derived type from
the module if it is use associated, otherwise, if can be found
in another gsymbol namespace, use the existing derived type as
the TYPE_CANONICAL and build normally.
* gfortran.h : Add derived_types and resolved fields to
gfc_namespace. Include prototype for gfc_errors_to_warnings.
2009-08-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40011
* gfortran.dg/whole_file_7.f90: New test.
* gfortran.dg/whole_file_8.f90: New test.
* gfortran.dg/whole_file_9.f90: New test.
* gfortran.dg/whole_file_10.f90: New test.
* gfortran.dg/whole_file_11.f90: New test.
* gfortran.dg/whole_file_12.f90: New test.
* gfortran.dg/whole_file_13.f90: New test.
* gfortran.dg/whole_file_14.f90: New test.
Jason Merrill [Sat, 1 Aug 2009 02:26:42 +0000 (22:26 -0400)]
call.c (convert_class_to_reference): Binding an lvalue to an rvalue reference is bad.
* call.c (convert_class_to_reference): Binding an lvalue to an
rvalue reference is bad. If the user-defined conversion is bad,
set bad_p before merging conversions.
(maybe_handle_ref_bind): Don't push down bad_p.
(reference_binding): Binding an lvalue to an rvalue reference is bad.
(convert_like_real): Give a helpful error about binding lvalue
to rvalue reference.
(reference_related_p): No longer static.
* typeck.c (build_typed_address): New.
(build_static_cast_1): Add static_cast from lvalue to &&.
* cp-tree.h: Adjust.
* include/bits/move.h (forward): Implement as in N2835.
(move): Implement as in N2831.
* include/std/istream (rvalue stream operator>>): New.
* include/std/ostream (rvalue stream operator<<): New.
Co-Authored-By: Douglas Gregor <doug.gregor@gmail.com>
From-SVN: r150327
Jason Merrill [Sat, 1 Aug 2009 02:26:21 +0000 (22:26 -0400)]
call.c (reference_binding): Rename lvalue_p to is_lvalue.
* call.c (reference_binding): Rename lvalue_p to is_lvalue.
Do direct binding of "rvalues" in memory to rvalue references.
* tree.c (lvalue_p_1): Can't be both non-addressable lvalue and
"rvalue" in memory.
* typeck.c (build_static_cast_1): Do direct binding of memory
"rvalues" to rvalue references.
* cvt.c (cp_fold_convert): New.
* cp-tree.h: Declare it.
Richard Earnshaw [Fri, 31 Jul 2009 21:56:28 +0000 (21:56 +0000)]
re PR tree-optimization/40914 (ipa_analyze_call_uses fails to handle ptrmemfunc_vbit_in_delta)
PR tree-optimization/40914
* ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
if set, then check the delta field of the PMF record.
(ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
(ipa_analyze_call_uses): Handle machines where the vbit for a PMF
call is stored in the delta.
* config/i386/bsd.h (ASM_BYTE): New define.
* config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
* config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
.byte. Use fputs or putc instead of fprintf where appropriate.
* config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
fputs or putc instead of fprintf where appropriate.
* config/i386/i386elf.h: Ditto.
* config/i386/sysv4.h: Ditto.
* config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
* config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
(*tls_global_dynamic_64): Ditto.
DJ Delorie [Fri, 31 Jul 2009 04:59:45 +0000 (00:59 -0400)]
sh.md (UNSPECV_SP_SWITCH_B): New.
* config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
(UNSPECV_SP_SWITCH_E): New.
(sp_switch_1): Change to an unspec.
(sp_switch_2): Change to an unspec. Don't use post-inc when we
replace $r15.
* config/sh/sh.c (sh_expand_prologue): Use the constant pool to
reference the new stack's address
Sebastian Pop [Fri, 31 Jul 2009 02:45:54 +0000 (02:45 +0000)]
Modify the testsuite for the new Graphite.
2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
* gcc.dg/graphite/graphite.exp: Implement an automatic selection of
flags based on the name of the testcase.
* gfortran.dg/graphite/graphite.exp: Same.
Sebastian Pop [Fri, 31 Jul 2009 02:28:50 +0000 (02:28 +0000)]
tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not static anymore.
2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
static anymore. Instantiate the symbols that may have been introduced
by chrec_apply.
* tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
Declared.
Kaz Kojima [Thu, 30 Jul 2009 22:56:08 +0000 (22:56 +0000)]
configure.host: Define ieee_flags and set it to -mieee for sh.
* configure.host: Define ieee_flags and set it to -mieee for sh.
* configure.ac: Set IEEE_FLAGS with ieee_flags.
* Makefile.am: Add IEEE_FLAGS to AM_CFLAGS.
* configure: Regenerate.
* Makefile.in: Regenerate.
fixincludes/
* Makefile.in (AUTOCONF, AUTOHEADER, ACLOCAL, ACLOCAL_AMFLAGS):
New variables.
($(srcdir)/configure, $(srcdir)/config.h.in, $(srcdir)/aclocal.m4):
Use them.
gcc/
* Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
New variables.
($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
(AUTOHEADER): New variable.
($(srcdir)/cstamp-h.in): Use it.
gnattools/
* Makefile.in (AUTOCONF, configure_deps): New variables.
($(srcdir)/configure): Use them.
libada/
* Makefile.in (AUTOCONF, configure_deps): New variables.
($(srcdir)/configure)): Use them. Also depend on multi.m4.
libgcc/
* configure.ac: Add snippet for maintainer-mode.
* configure: Regenerate.
* Makefile.in (AUTOCONF, configure_deps): New variables.
($(srcdir)/configure)): New rule, active only with maintainer
mode turned on.
libiberty/
* Makefile.in (AUTOCONF, configure_deps): New variables.
($(srcdir)/configure): New rule, active only in maintainer mode.
libobjc/
* Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
New variables.
($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
intl/
* Makefile.in (aclocal_deps): New variable.
($(srcdir)/aclocal.m4): Use it, for portable makefile syntax.
libdecnumber/
* Makefile.in (aclocal_deps): New variable.
($(srcdir)/aclocal.m4): Use it, for portable makefile syntax.
extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Do not expand for Autoconf 2.62 or newer.
config/
* extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Do not expand
for Autoconf 2.62 or newer.
* tls.m4 (GCC_CHECK_TLS): Fix m4 quotation.
* no-executables.m4 (_AC_COMPILER_EXEEXT): Fix m4 quotation.
* override.m4 (m4_copy_force, m4_rename_force): Provide
macros if not defined.
(AC_PREREQ): Use m4_copy_force.
boehm-gc/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libada/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libffi/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libgfortran/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libgomp/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libjava/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libmudflap/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libobjc/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libssp/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
zlib/
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
libstdc++-v3/
* acinclude.m4 (GLIBCXX_CONFIGURE): Use m4_rename_force.
* exp_util.adb (Expand_Subtype_From_Expr): If the type of the
expression has an underlying representation that is an unchecked union,
there is no subtype to build.
* cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
(cgraph_create_edge_including_clones): Likewise.
* tree-inline.c (copy_bb): Operate on the correct edges
when updating the callgraph.
Douglas B Rupp [Thu, 30 Jul 2009 00:15:35 +0000 (00:15 +0000)]
vms-cc.c: Deleted.
* config/alpha/vms-cc.c: Deleted.
* config/alpha/vms-ld.c: Deleted.
* config/alpha/t-vms64: Moved to config/vms
* config/alpha/vms-crt0-64.c: Moved to config/vms
* config/alpha/vms-crt0.c: Moved to config/vms
* config/alpha/vms-psxcrt0-64.c: Moved to config/vms
* config/alpha/vms-psxcrt0.c: Moved to config/vms
* config/alpha/xm-vms.h: Moved to config/vms
* config/alpha/x-vms: Moved to config/vms
* config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
config/vms/t-vms.
* config/vms/t-vms: Moved here from config/alpha. Alpha specific
parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
(version): Set.
* config/vms/t-vms64: Moved here from config/alpha
* config/vms/vms-crt0-64.c: Moved here from config/alpha.
(argc,argv,envp): Enforce 32bit malloc'ing.
* config/vms/vms-psxcrt0-64.c: Likewise.
* config/vms/vms-crt0.c: Moved here from config/alpha.
* config/vms/vms-psxcrt0.c: Likewise.
* config/vms/vms-crtl-64.h: New file.
* config/vms/vms-crtl.h: New file.
* config/vms/vms.opt: New file.
* config/vms/xm-vms64.h: New file.
* config/vms/xm-vms.h: Moved here from config/alpha.
(STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
Set.
* config/vms/x-vms: Moved here from config/alpha.
(version, VMS_EXTRA_PARTS): Moved to t-vms.
(vms-ld.o, vms-cc.o): Removed.
(LN, LN_S, USE_COLLECT2, POD2MAN): Set.
Paolo Carlini [Wed, 29 Jul 2009 18:40:39 +0000 (18:40 +0000)]
gnu.ver: Add GLIBCXX_3.4.13, move a symbol into it.
2009-07-29 Paolo Carlini <paolo.carlini@oracle.com>
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.13, move a symbol into it.
* testsuite/util/testsuite_abi.cc: Adjust.
* configure.ac: Bump libtool_VERSION to 6:13:0.
* configure: Regenerate.
Douglas B Rupp [Wed, 29 Jul 2009 17:35:32 +0000 (17:35 +0000)]
dwarf2out.c (output_file_names): Output VMS style file name, size, date, version info if VMS_DEBUGGING_INFO defined.
* dwarf2out.c (output_file_names): Output VMS style file name, size,
date, version info if VMS_DEBUGGING_INFO defined.
* vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
size, date calculating code moved here.
re PR fortran/40898 (STDCALL mangling problem for strings @8 instead of @4)
2009-07-29 Tobias Burnus <burnus@net-b.de>
PR fortran/40898
* trans-types.c (gfc_get_function_type): Do not add hidden
string-length argument for BIND(C) procedures.
* trans-decl.c (create_function_arglist): Skip over nonexisting
string-length arguments for BIND(C) procedures.
Javier Miranda [Wed, 29 Jul 2009 10:34:29 +0000 (10:34 +0000)]
sem_ch3.ads, [...] (Add_Internal_Interface_Entities): Routine moved from the expander to the semantic analyzer to allow the...
2009-07-29 Javier Miranda <miranda@adacore.com>
* sem_ch3.ads, sem_ch3.adb (Add_Internal_Interface_Entities): Routine
moved from the expander to the semantic analyzer to allow the
generation of these internal entities when compiling with no code
generation. Required by ASIS.
* sem.adb (Analyze): Add processing for N_Freeze_Entity nodes.
* sem_ch13.ads, sem_ch13.adb (Analyze_Freeze_Entity): New subprogram.
* exp_ch3.adb (Add_Internal_Interface_Entities): Moved to sem_ch3
(Expand_Freeze_Record_Type): Remove call to
Add_Internal_Interface_Entities because this routine is now called at
early stage --when the freezing node is analyzed.
* exp_atag.ads, exp_atag.adb, s-tasini.adb, s-soflin.ads,
exp_disp.adb, g-socket.adb: Minor reformatting
2009-07-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch7.adb (New_Private_Type): Create class-wide type after other
attributes have been established, so that they are all inherited by the
class-wide type.
* sem_cat.adb (Validate_Remote_Access_Object_Type_Declaration): Handle
properly named subtypes of class-wide types.
Javier Miranda [Wed, 29 Jul 2009 08:43:58 +0000 (08:43 +0000)]
frontend.adb (Frontend): Code cleanup.
2009-07-29 Javier Miranda <miranda@adacore.com>
* frontend.adb (Frontend): Code cleanup.
* exp_atag.ads, exp_atag.adb (Build_Get_Predefined_Prim_Op_Address):
Rewriten as a procedure because it a new out-mode parameters to
keep up-to-date the controlling tag node in the caller.
(Build_Get_Prim_Op_Address): Rewriten as a procedure because it has a
new out-mode parameter to keep up-to-date the controlling tag node in
the caller.
* exp_ch7.adb, sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb,
exp_ch6.adb, sem_ch4.adb, exp_ch3.adb: Add new dependency on new
package Sem_SCIL.
* sem_aux.ads, sem_aux.adb (First_Non_SCIL_Node): Removed. Routine
available in new package Sem_SCIL.
(Next_Non_SCIL_Node): Ditto.
* exp_disp.adb (Adjust_SCIL_Node): Removed. Routine available in new
package Sem_SCIL.
(Expand_Dispatching_Call): Update call to modified Exp_Atags routines
plus complete decoration of SCIL dispatching node.
(Find_SCIL_Node): Removed. Routine available in new package Sem_SCIL.
* exp_disp.ads (Adjust_SCIL_Node): Removed. Routine available in new
package Sem_SCIL.
(Find_SCIL_Node): Removed. Routine available in new package Sem_SCIL.
* exp_ch3.adb (Build_Init_Procedure): Fix comment.
* sem_scil.ads, sem_scil.adb: New files.
* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Addition of sem_scil.o.
Update dependencies.