Arnaud Charlet [Tue, 12 May 2015 08:13:39 +0000 (10:13 +0200)]
[multiple changes]
2015-05-12 Robert Dewar <dewar@adacore.com>
* sem_type.adb, sem_ch10.adb, freeze.adb, sem_ch6.adb, exp_disp.adb:
Minor reformatting.
2015-05-12 Bob Duff <duff@adacore.com>
* exp_attr.adb (Size): Remove unnecessary check for types with
unknown discriminants. That was causing the compiler to build
a function call _size(T), where T is a type, not an object.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Extended_Primitive_Ops): Exclude overriding
primitive operations of a type extension declared in the package
body, to prevent duplicates in extended list.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Component_Declaration): If the component is
an unconstrained synchronized type with discriminants, create a
constrained default subtype for it, so that the enclosing record
can be given the proper size.
* sem_util.adb (Build_Default_Subtype): If the subtype is created
for a record discriminant, do not analyze the declarztion at
once because it is added to the freezing actions of the enclosing
record type.
Arnaud Charlet [Tue, 12 May 2015 08:07:41 +0000 (10:07 +0200)]
[multiple changes]
2015-05-12 Robert Dewar <dewar@adacore.com>
* exp_unst.adb (Get_Real_Subp): New subprogram.
(Unnest_Subprogram): Use Get_Real_Subp.
(Uplev_Refs_For_One_Subp): Skip if no ARECnU entity.
(Uplev_Refs_For_One_Subp): Use actual subtype in unconstrained case.
2015-05-12 Robert Dewar <dewar@adacore.com>
* a-reatim.adb ("/"): Add explicit check for Time_Span_First / -1.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Extended_Primitive_Ops): New subprogram,
auxiliary to Try_Primitive_Operation to handle properly prefixed
calls where the operation is not a primitive of the type, but
is declared in the package body that is in the immediate scope
of the type.
Arnaud Charlet [Tue, 12 May 2015 08:03:06 +0000 (10:03 +0200)]
[multiple changes]
2015-05-12 Robert Dewar <dewar@adacore.com>
* sem_util.adb (Is_Variable): Allow X'Deref(Y) as a variable.
2015-05-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Expanded_Name): Handle properly a fully
qualified name for an instance of a generic grand-child unit in
the body its parent.
2015-05-12 Robert Dewar <dewar@adacore.com>
* exp_unst.adb (Upref_Name): New subprogram.
(Unnest_Subprogram): Use Upref_Name.
(Unnest_Subprogram): Use new Deref attribute.
* exp_unst.ads: Doc updates.
2015-05-12 Thomas Quinot <quinot@adacore.com>
* adaint.c: Enable Large File Support in adaint so that __gnat_readdir
can access files on filesystems mounted from servers that use large
NFS file handles.
combine.c i (set_nonzero_bits_and_sign_copies): Split code updating rsp->sign_bit_copies and rsp->nonzero_bits into ...
2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
* combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
rsp->sign_bit_copies and rsp->nonzero_bits into ...
(update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
present to get more accurate information about the number of sign bit
copies and non zero bits.
If gimple_asm_volatile_p is correct, no point re-checking.
This is also done by the C and C++ front ends, but not Ada.
So we can't yet trust ASM_VOLATILE_P from the front end.
Jan Hubicka [Mon, 11 May 2015 22:24:33 +0000 (00:24 +0200)]
class.c (fixup_type_variants): Do not copy TYPE_METHODS
* class.c (fixup_type_variants): Do not copy TYPE_METHODS
(one_inheriting_sig): Assert tat we always set TYPE_METHODS of main variant.
* semantics.c (finish_member_declaration): Likewise.
* method.c (lazily_declare_fn): Allways add method to main variant list.
* dwarf2out.c (gen_member_die): Sanity check that we access TYPE_MAIN_VARIANT
for TYPE_METHODS.
* function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when checking
TYPE_METHODS.
* tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
if non-null.
(build_distinct_type_copy): Clear TYPE_METHODS.
(verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
(verify_type): Allow TYPE_METHODS to be error_mark_node.
* tree.def: Update docs of YTPE_STUB_DECL and TYPE_METHODS.
genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE for define_peephole2s.
gcc/
* genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
for define_peephole2s.
(get_peephole2_pattern): New function.
(main): Use it. Call validate_pattern.
avr.c (avr_hard_regno_call_part_clobbered): Use LAST_CALLEE_SAVED_REG instead of hard-coded register number.
* config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
LAST_CALLEE_SAVED_REG instead of hard-coded register number.
(Last callee saved reg is different for AVR_TINY architecture)
Ian Lance Taylor [Mon, 11 May 2015 16:19:23 +0000 (16:19 +0000)]
runtime: Fix runtime/pprof test when libgo is not optimized.
When libgo is not optimized the static function profilealloc
in malloc.goc shows up in the stack trace. Rename it to
runtime_profilealloc so that runtime/pprof.printStackRecord
ignores it.
calls.c (prepare_call_address): Transform PLT call to GOT lookup and indirect call by forcing address into a...
* calls.c (prepare_call_address): Transform PLT call to GOT lookup and
indirect call by forcing address into a pseudo with -fno-plt.
* common.opt (flag_plt): New option.
* doc/invoke.texi (Code Generation Options): Add -fno-plt.
([-fno-plt]): Document.
re PR rtl-optimization/66076 (ICE: in vec_safe_grow, at vec.h:618 with -funroll-loops -mno-prefer-avx128 -march=bdver4)
gcc/
PR rtl-optimization/66076
* rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
Don't grow the heap array if it is already big enough from a
previous iteration.
gcc/testsuite/
PR rtl-optimization/66076
* gcc.dg/torture/pr66076.c: New test.
Jan Hubicka [Sun, 10 May 2015 21:58:53 +0000 (23:58 +0200)]
ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about mismatch between C and C++ type...
* ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
mismatch between C and C++ type; compoare correctly ARG_TYPES
for non-prototypes and output correctly parameter index for METHOD_TYPE.
(odr_types_equivalent_p): Fix wording of warning about attributes;
it is OK to match prototype and non-prototype.
Thomas Koenig [Sun, 10 May 2015 18:08:33 +0000 (18:08 +0000)]
re PR fortran/66041 (Matmul ICE)
2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/66041
* frontend-passes.c (scalarized_expr): Set correct dimension and
shape for the expression to be passed to lbound. Remove trailing
references after array refrence.
(inline_matmul_assign): Remove gfc_copy_expr from calls
to scalarized_expr().
2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/66041
* gfortran.dg/inline_matmul_7.f90: New test.
* gfortran.dg/inline_matmul_8.f90: New test.
* gfortran.dg/inline_matmul_9.f90: New test.
Mikael Morin [Sun, 10 May 2015 13:56:47 +0000 (13:56 +0000)]
bound simplification refactoring
gcc/fortran/
* simplify.c (simplify_bound_dim): Don't check for emptyness
in the case of cobound simplification. Factor lower/upper
bound differenciation before the actual simplification.
(simplify_bound): Remove assumed shape specific simplification.
Don't give up early for the lbound of an assumed shape.
gcc/testsuite/
* gfortran.dg/bound_simplification_5.f90: New.
Jason Merrill [Sun, 10 May 2015 00:47:12 +0000 (20:47 -0400)]
c-common.h (enum cxx_dialect): Add cxx_unset.
gcc/c-family/
* c-common.h (enum cxx_dialect): Add cxx_unset.
* c-common.c (cxx_dialect): Initialize to cxx_unset.
* c-opts.c (c_common_post_options): Set C++ dialect to C++98 if unset.
gcc/testsuite/
* lib/target-supports.exp (cxx_default): New global.
(check_effective_target_c++11_only)
(check_effective_target_c++14_only)
(check_effective_target_c++98_only)
(check_effective_target_c++1z_only): Check it.
Mikael Morin [Sat, 9 May 2015 13:36:14 +0000 (13:36 +0000)]
Fix fortran/65894 elemental procedures wrong-code
gcc/fortran/
2015-05-09 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/65894
* trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
New prototype.
* trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
New function.
(gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
as conditional.
(gfc_walk_elemental_function_args): Set the dummy_arg field.
* trans.h (gfc_ss_info): New subfield dummy_arg.
* trans-expr.c (gfc_conv_procedure_call): Revert the change
of revision 222361.
(gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
as conditional.
gcc/testsuite/
2015-05-09 Andre Vehreschild <vehre@gmx.de>
PR fortran/65894
* gfortran.dg/elemental_subroutine_11.f90: New test.
* decl2.c (collect_candidates_for_java_method_aliases): Remove.
(build_java_method_aliases): Adapt to use create_same_body_alias
instead of assemble_alias. Move variable declarations to
definition and tidy up.
(cp_write_global_declarations): Call build_java_method_aliases
instead of collecting candidates first.
Jim Wilson [Fri, 8 May 2015 19:56:13 +0000 (19:56 +0000)]
install.texi (--enable-languages): Add missing jit and lto info.
* doc/install.texi (--enable-languages): Add missing jit and lto info.
Add ^ to grep command.
* doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
arg to last gimple_simplify declaration. Add missing gimple_build
declaration for built-in function case with four tree args.
Mikael Morin [Fri, 8 May 2015 14:53:20 +0000 (14:53 +0000)]
trans-array.c (gfc_walk_elemental_function_args): Don't skip the advance to the next dummy argument when...
gcc/fortran/
* trans-array.c (gfc_walk_elemental_function_args):
Don't skip the advance to the next dummy argument when skipping
absent optional args.
gcc/testsuite/
* gfortran.dg/elemental_optional_args_7.f90: New.