2009-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38672
* trans-types.c (gfc_get_derived_type): Check for the
presence of derived->ns->proc_name before
accessing derived->ns->proc_name->attr.flavor .
* resolve.c (resolve_symbol): Likewise.
2009-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38672
* gfortran.dg/host_assoc_blockdata_1.f90: New test.
* gfortran.dg/host_assoc_blockdata_2.f90: New test.
From-SVN: r143074
2009-01-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38665
* gfortran.h : Add bit to gfc_expr 'user_operator'
* interface.c (gfc_extend_expr): Set the above if the operator
is substituted by a function.
* resolve.c (check_host_association): Return if above is set.
2009-01-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38665
* gfortran.dg/host_assoc_function_5.f90: New test.
From-SVN: r143064
* configure.ac: Exchange the order of GLIBCXX_ENABLE_THREADS and
GLIBCXX_ENABLE_ATOMIC_BUILTINS macro invocations.
* configure: Regenerate.
From-SVN: r143062
2009-01-04 Richard Guenther <rguenther@suse.de>
PR libstdc++/38720
* include/ext/pointer.h (_Relative_pointer_impl): Use an unsigned
integer type for storage, arithmetic and comparisons.
* testsuite/ext/ext_pointer/1_neg.cc: Adjust line numbers.
From-SVN: r143058
2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/35681
* ChangeLog-2008: Fix function name.
PR fortran/38487
* dependency.c (gfc_check_argument_var_dependency):
Move the check for pointerness inside the if block
so that it doesn't affect the return value.
PR fortran/38669
* trans-stmt.c (gfc_trans_call):
Add the dependency code after the loop bounds calculation one.
2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/38669
* gfortran.dg/elemental_dependency_3.f90: New test.
* gfortran.dg/elemental_subroutine_7.f90: New test.
From-SVN: r143057
* doc/extend.texi (Function Attributes): Move @cindex after @item
for 'artifical' and 'flatten'. Fix grammar for 'externally_visible'
and put in alphabetical order. Fix 'target' name and put in order.
* doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
typos.
From-SVN: r143051
2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/38536
* gfortran.h (gfc_is_data_pointer): Added prototype
* resolve.c (gfc_iso_c_func_interface):
Use gfc_is_data_pointer to test for pointer attribute.
* dependency.c (gfc_is_data_pointer):
Support pointer-returning functions.
2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/38536
* gfortran.dg/c_loc_tests_13.f90: New test.
* gfortran.dg/c_loc_tests_14.f90: New test.
From-SVN: r143050
* config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
(memory_barrier): Expand as unspec instead of unspec_volatile.
Remove mem:BLK from insn operands. Use Pmode scratch register.
(*memory_barrier): Define as unspec instead of unspec_volatile.
Use (match_dup 0) as input operand.
* config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
* config/sparc/sync.md (memory_barrier): Expand as unspec instead of
unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
scratch register. Remove operand 1.
(*stbar): Define as unspec instead of unspec_volatile.
Use (match_dup 0) as input operand, remove (const_int 8).
(*membar): Define as unspec instead of unspec_volatile.
Use (match_dup 0) as input operand, remove input operand 2.
* config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
(memory_barrier): Expand as unspec instead of unspec_volatile.
Remove mem:BLK from insn operands. Use Pmode scratch register.
(*memory_barrier): Define as unspec instead of unspec_volatile.
Use (match_dup 0) as input operand.
* config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
Remove mem:BLK from insn operands. Use Pmode scratch register.
Set volatile flag on operand 0.
(*memory_barrier): New insn pattern.
* config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
insn operands.
(*memory_barrier): Use (match_dup 0) as input operand.
* config/mips/sync.md (memory_barrier): Redefine as expander pattern.
Remove mem:BLK from insn operands. Use Pmode scratch register.
Set volatile flag on operand 0.
(*memory_barrier): New insn pattern.
* config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
From-SVN: r143047
PR middle-end/38586
* function.c (struct temp_slot): Move to the section of the file
that deals with temp slots. Remove field 'address'.
(temp_slot_address_table): New hash table of address -> temp slot.
(struct temp_slot_address_entry): New struct, items for the table.
(temp_slot_address_compute_hash, temp_slot_address_hash,
temp_slot_address_eq, insert_temp_slot_address): Support functions
for the new table.
(find_temp_slot_from_address): Rewrite to use the new hash table.
(remove_unused_temp_slot_addresses): Remove addresses of temp
slots that have been made available.
(remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
worker function for remove_unused_temp_slot_addresses.
(assign_stack_temp_for_type): Don't clear the temp slot address list.
Add the temp slot address to the address -> temp slot map.
(update_temp_slot_address): Update via insert_temp_slot_address.
(free_temp_slots): Call remove_unused_temp_slot_addresses.
(pop_temp_slots): Likewise.
(init_temp_slots): Allocate the address -> temp slot map, or empty
the map if it is already allocated.
(prepare_function_start): Initialize temp slot processing.
From-SVN: r143041
PR middle-end/38584
* cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
Calculate the size of all stack vars assuming no packing of stack
vars will happen, replacing a quadratic algorithm with a linear one.
From-SVN: r143040
2009-01-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38594
* resolve.c (resolve_call): When searching for proper host
association, use symtree rather than symbol. For everything
except generic subroutines, substitute the symtree in the call
rather than the symbol.
2009-01-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38594
* gfortran.dg/host_assoc_call_3.f90: Make sure that the generic
interface still works, in addition to original tests.
* gfortran.dg/host_assoc_call_6.f90: New test.
From-SVN: r143032
PR c++/38705
* builtins.c (fold_builtin_memory_op): Give up if either operand
is volatile. Set srctype or desttype to non-qualified version
of the other type.
* g++.dg/torture/pr38705.C: New test.
From-SVN: r143029
2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
PR rtl-optimization/35805
* df-problems.c (df_lr_finalize): Add recursive call to resolve lr
problem if fast dce is able to remove any instructions.
* dce.c (dce_process_block): Fix dump message.
From-SVN: r143027
PR middle-end/38690
* tree-flow.h (op_code_prio, op_prio): New prototypes.
* tree-pretty-print.c (op_code_prio): New function.
(op_prio): No longer static. Use op_code_prio.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
Use op_prio and op_code_prio to determine if () should be
printed around operand(s) or not.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
pp_character instead of pp_string for single letter printing.
From-SVN: r143012
2009-01-01 Andrew Pinski <pinskia@gmail.com>
PR middle-end/30142
* tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
case to be an error.
From-SVN: r143001
2009-01-01 Andreas Tobler <a.tobler@schweiz.org>
* inclhack.def (openbsd_null_definition): Redefine NULL to (void *)0
in case of C.
* fixincl.x: Regenerate.
From-SVN: r142989
gcc/fortran:
2008-12-31 Daniel Franke <franke.daniel@gmail.com>
* check.c (dim_rank_check): Fixed checking of dimension argument
if array is of type EXPR_ARRAY.
gcc/testsuite:
2008-12-31 Daniel Franke <franke.daniel@gmail.com>
* gfortran.dg/mapping_2.f90: Fixed testcase.
From-SVN: r142981