Michael Matz [Wed, 19 Aug 2009 10:17:33 +0000 (10:17 +0000)]
tree-ssa-structalias.c (create_variable_info_for): Also mark first field in a struct.
* tree-ssa-structalias.c (create_variable_info_for): Also mark
first field in a struct.
(intra_create_variable_infos): Don't deal with flag_argument_noalias.
fortran/
* trans-expr.c (gfc_conv_substring): Don't evaluate casted decl early,
change order of length calculation to (end - start) + 1.
(gfc_get_interface_mapping_array): Adjust call to
gfc_get_nodesc_array_type.
* trans-array.c (gfc_trans_create_temp_array,
gfc_build_constant_array_constructor, gfc_conv_expr_descriptor): Ditto.
* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
* trans.c (gfc_add_modify): Assignment between base type and nontarget
type are equal enough.
(gfc_call_malloc): Use prvoid_type_node for return value of
__builtin_malloc.
(gfc_allocate_with_status): Ditto.
* trans-types.c (gfc_array_descriptor_base): Double size of this array.
(gfc_init_types): Build prvoid_type_node.
(gfc_build_array_type): New bool parameter "restricted".
(gfc_get_nodesc_array_type): Ditto, build restrict qualified pointers,
if it's true.
(gfc_get_array_descriptor_base): Ditto.
(gfc_get_array_type_bounds): Ditto.
(gfc_sym_type): Use symbol attributes to feed calls to above functions.
(gfc_get_derived_type): Ditto.
* trans.h (struct lang_type): Add nontarget_type member.
* trans-types.h (prvoid_type_node): Declare.
(gfc_get_array_type_bounds, gfc_get_nodesc_array_type): Declare new
parameter.
* trans-decl.c (gfc_finish_var_decl): Give scalars that can't be
aliased a type with a different alias set than the base type.
(gfc_build_dummy_array_decl): Adjust call to gfc_get_nodesc_array_type.
testsuite/
* gfortran.dg/vect/vect-gems.f90: New test.
* gcc.dg/tree-ssa/alias-1.c: Remove, it checks something broken.
Uros Bizjak [Tue, 18 Aug 2009 17:50:44 +0000 (19:50 +0200)]
alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
locators before emit_insn is called. Remove assert that
cfun->is_thunk.
(alpha_end_function): Clear crtl->emit structure and free insn
locators if cfun->is_thunk is true.
Jason Merrill [Tue, 18 Aug 2009 17:01:36 +0000 (13:01 -0400)]
elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object type if available.
* config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
type if available.
* configure.ac: Test for it.
* configure, config.in: Regenerate.
* doc/install.texi: Document --enable-gnu-unique-object.
Janus Weil [Tue, 18 Aug 2009 14:23:35 +0000 (16:23 +0200)]
re PR fortran/40870 ([F03] include formal args in backend_decl of PPCs)
2009-08-18 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/40870
* trans-types.c (gfc_get_ppc_type): Include formal args in backend_decl
using the interface symbol. Character types are returned by reference.
(gfc_get_derived_type): Prevent infinite recursion loop
if a PPC has a derived-type formal arg.
2009-08-18 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
DJ Delorie [Mon, 17 Aug 2009 22:25:06 +0000 (18:25 -0400)]
m32c.md (UNS_FSETB, UNS_FREIT): New.
* config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
* config/m32c/prologue.md (epilogue_freit): New.
(fset_b): New.
* config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
(bank_switch_p): Likewise.
(fast_interrupt_p): Likewise.
(interrupt_p): Likewise.
(m32c_conditional_register_usage): Round memregs size up.
(need_to_save): We only need to save $a0 when we use ENTER.
(interrupt_p): Check for fast_interrupt too.
(bank_switch_p): New.
(fast_interrupt_p): New.
(m32c_attribute_table): Add bank_switch and fast_interrupt.
(m32c_emit_prolog): Support bank switching and fast interrupts.
* doc/extend.texi (Function Attributes): Add bank_switch and
fast_interrupt.
Daniel Kraft [Mon, 17 Aug 2009 18:55:30 +0000 (20:55 +0200)]
re PR fortran/37425 (Fortran 2003: GENERIC bindings as operators)
2009-08-17 Daniel Kraft <d@domob.eu>
PR fortran/37425
* resolve.c (get_checked_tb_operator_target): New routine to do checks
on type-bound operators in common between intrinsic and user operators.
(resolve_typebound_intrinsic_op): Call it.
(resolve_typebound_user_op): Ditto.
2009-08-17 Daniel Kraft <d@domob.eu>
PR fortran/37425
* gfortran.dg/typebound_operator_2.f03: Test for error with illegal
NOPASS bindings as operators.
Uros Bizjak [Mon, 17 Aug 2009 17:01:53 +0000 (19:01 +0200)]
* lib/target-supports.exp
(check_effective_target_vect_cmdline_needed):: Add alpha to the list
of targets that do not need command line argument to enable SIMD.
Jerry DeLisle [Mon, 17 Aug 2009 14:27:29 +0000 (14:27 +0000)]
re PR fortran/41075 ([F2008] Implement unlimited format item)
2009-08-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/41075
* io/io.h (enum format_token): Add FMT_STAR.
* io/format.c (format_lex): Add case for FMT_STAR.
(parse_format_list): Parse FMT_STAR and check for left paren
after. (next_format0): Modify helper function to check for
unimited format and return the repeated format node. Update
comments to clarify.
Jerry DeLisle [Mon, 17 Aug 2009 14:25:38 +0000 (14:25 +0000)]
re PR fortran/41075 ([F2008] Implement unlimited format item)
2009-08-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/41075
* scanner.c (gfc_next_char_literal): Add comment to improve
readability.
* io.c (enum format_token): Add FMT_STAR. (format_lex): Add case
for '*'. (check_format): Check for left paren after '*'. Change
format checks to use %L to improve format string error locus.
Aurelien Jarno [Mon, 17 Aug 2009 12:08:20 +0000 (12:08 +0000)]
s-osinte-kfreebsd-gnu.ads (SA_ONSTACK): New constant.
* s-osinte-kfreebsd-gnu.ads (SA_ONSTACK): New constant.
(stack_t): New record type.
(sigaltstack): New imported function.
(Alternate_Stack): New imported variable.
(Alternate_Stack_Size): New constant.
* make.adb (Arguments_Collected): Unneeded, removed
(Change_To_Object_Directory): Use Project directly. Add pragma Assert to
ensure caller does not pass in No_Project.
(Compile): Add new parameter Project. Let procedure
Collect_Arguments_And_Compile provide the proper value.
* switch-c.adb: Add documentation for -gnatea and -gnatez
2009-08-17 Ben Brosgol <brosgol@adacore.com>
* gnat_ugn.texi: Changed name of package in SAL example, to avoid
clash with Ada 2005 reserved word (interface).
Arnaud Charlet [Mon, 17 Aug 2009 10:00:43 +0000 (12:00 +0200)]
[multiple changes]
2009-08-17 Robert Dewar <dewar@adacore.com>
* tbuild.adb: Minor reformatting
2009-08-17 Thomas Quinot <quinot@adacore.com>
* exp_ch4.adb (Exp_Ch4.Expand_N_Slice.Make_Temporary): Rename to
Make_Temporary_For_Slice to avoid confusion with Tbuild.Make_Temporary.
Use Tbuild.Make_Temporary to create entity for the temporary.
Arnaud Charlet [Mon, 17 Aug 2009 09:45:27 +0000 (11:45 +0200)]
[multiple changes]
2009-08-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Discriminant_Formals): If the discriminals already
exist, as is the case for synchronized types, use the type of the
discriminal in the parameter specification, to prevent a spurious
subtype mismatch in gigi.
2009-08-17 Robert Dewar <dewar@adacore.com>
* prj-env.adb: Minor reformatting
* make.adb: Minor reformatting
Comment updates
Emmanuel Briot [Mon, 17 Aug 2009 09:42:19 +0000 (11:42 +0200)]
2009-08-17 Emmanuel Briot <briot@adacore.com>
* prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-conf.adb
(Processing_Flags.Require_Obj_Dirs): new field, which controls whether
object directories must be present. In the case of gprclean at least,
these are optional (if they do not exist there is nothing to clean)
* sysdep.c (__gnat_localtime_tzoff): VxWorks case - Flip the sign of
the time zone since VxWorks chose positive values to represent west
time zones and negative for east zones.
Jason Merrill [Sun, 16 Aug 2009 17:42:56 +0000 (13:42 -0400)]
Make TREE_USED match the [basic.def.odr] concept for FUNCTION_DECL and VAR_DECL...
Make TREE_USED match the [basic.def.odr] concept for FUNCTION_DECL
and VAR_DECL, so mark_used only has effect the first time.
* decl2.c (mark_used): Just return if TREE_USED is already set.
Don't set TREE_USED if cp_unevaluated_operand is set.
(tree_used_ok): New fn.
* init.c (build_offset_ref): Check it instead of TREE_USED.
* call.c (build_call_a): Likewise.
* cp-tree.h: Declare it.
(DECL_NO_LINKAGE_CHECKED): No longer needed.
(struct lang_decl_base): Remove no_linkage_checked bitfield.
mips-protos.h (mips_push_asm_switch): New function.
gcc/
* config/mips/mips-protos.h (mips_push_asm_switch): New function.
(mips_pop_asm_switch): Likewise.
* config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
with...
(mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
(mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
(mips_push_asm_switch, mips_pop_asm_switch): Likewise.
(mips_print_operand_punctuation): Use them. Check mips_noreorder
instead of set_noreorder.
(mips_output_function_prologue): Use the new functions.
(mips_output_function_epilogue): Likewise.
(mips_need_noat_wrapper_p): New function, split out from...
(mips_final_prescan_insn, mips_final_postscan_insn): ...here.
Use mips_push_asm_switch and mips_pop_asm_switch.
* config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
and mips_pop_asm_switch.
(ASM_OUTPUT_REG_POP): Likewise.
(DBR_OUTPUT_SEQEND): Remove boilerplate comment.
Use mips_pop_asm_switch.
(mips_asm_switch): New structure.
(set_noreorder, set_nomacro): Replace with...
(mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
* config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
instead of set_nomacro.
(fix_truncsfsi2_macro): Likewise.
(cprestore): Likewise.
(hazard): Use mips_noreorder instead of set_noreorder.
* config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
Anatoly Sokolov [Sun, 16 Aug 2009 16:22:59 +0000 (20:22 +0400)]
avr.h (AVR_HAVE_8BIT_SP): New macros.
* config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
* config/avr/avr.c (avr_override_options): Initialize
avr_current_arch variable.
(avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
__AVR_HAVE_16BIT_SP__ according to the device type.
(expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
TARGET_TINY_STACK.
(expand_epilogue): Use correct QI mode frame pointer for tiny stack.
Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
Dodji Seketeli [Sun, 16 Aug 2009 09:02:25 +0000 (09:02 +0000)]
re PR debug/37801 (DWARF output for inlined functions doesn't always use DW_TAG_inlined_subroutine)
Fix for PR debug/37801
gcc/ChangeLog:
* gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
generating inlined subroutine die only. We shouldn't be
called for anything else.
(gen_block_die): Don't generate inline subroutine debug info for
abstract blocks.
gcc/testsuite/ChangeLog:
* gcc/testsuite/gcc.dg/debug/20020224-1.c: Adjust the comment.
Make sure to trigger inlining optimizations.
* gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c: New test.
Douglas B Rupp [Fri, 14 Aug 2009 20:56:31 +0000 (20:56 +0000)]
fde-vms.c: New file.
2009-08-14 Douglas B Rupp <rupp@gnat.com>
* config/ia64/fde-vms.c: New file.
* config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
* config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
(MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
(uw_frame_state_for): Only register a personality routine if it is
known to be compatible with our expectations.
(_Unwind_FindEnclosingFunction, uw_frame_state_for):
Declare unw_table_entry stack variable and
mod all calls to _Unwind_FindTableEntry to add arg.
* config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
(_Unwind_FindTableEntry): Add arg to prototype.
Eric Botcazou [Fri, 14 Aug 2009 20:49:40 +0000 (20:49 +0000)]
unwind-ia64.c (struct _Unwind_Context): Add new field 'signal_pfs_loc'.
* config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
field 'signal_pfs_loc'.
(uw_frame_state_for): Remove duplicate code dealing with leaf
procedures without unwind info.
If in the frame after unwinding through a signal handler, restore
the AR.PFS register instead of the CFM if AR.PFS has not been saved.
* config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
'pfs_loc' to the AR.PFS location in the signal context; instead
set 'signal_pfs_loc'.
Manually generate the unwind info for the AR.PFS register.
(ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
(ia64_handle_unwabi): Test 'fs->unwabi' against them.
Do not set 'pfs_loc' to the AR.PFS location in the signal context;
instead set 'signal_pfs_loc'.
Remove code preventing the AR.PFS register from being restored
from the signal context.
Douglas B Rupp [Fri, 14 Aug 2009 20:38:36 +0000 (20:38 +0000)]
config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
* config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
* config/ia64/t-vms: New file.
* config/ia64/vms64.h: New file.
* config/ia64/vms.h: New file.
* config/ia64/vms-crtinit.asm: New file.
* config/ia64/vms_symvec_libgcc_s.opt: New file.
* config/ia64/vms-unwind.h: New file.
Kaveh R. Ghazi [Fri, 14 Aug 2009 16:44:36 +0000 (16:44 +0000)]
re PR middle-end/30789 (complex folding inexact)
PR middle-end/30789
* builtins.c (do_mpc_arg2): Make extern, define for any MPC
version. Move declaration...
* real.h (do_mpc_arg2): ... here.
* fold-const.c (const_binop): Use MPC for complex MULT_EXPR
and RDIV_EXPR.
re PR rtl-optimization/41064 (build breakage for cris-elf building newlib, ICE in extract_insn, from r150726)
PR rtl-optimization/41064
* reload1.c (reload_as_needed): Don't call extract_insn
for known invalid replacements after calling
validate_replace_rtx_group and verify_changes.
Uros Bizjak [Fri, 14 Aug 2009 10:31:09 +0000 (12:31 +0200)]
re PR target/41019 (Vector conditional move produces wrong code with -O3.)
PR target/41019
* config/i386/sse.md (SSEMODE124C8): New mode iterator.
(vcond<SSEMODEF2P:mode>): Assert that operation is supported by
ix86_expand_fp_vcond.
(vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
Assert that operation is supported by ix86_expand_int_vcond.
(vcondu<SSEMODE124C8:mode>): Ditto.
testsuite/ChangeLog:
PR target/41019
* gcc.target/i386/pr41019.c: New test.